接触ADO.NET,下午自己摸索着用代码实现了点增删改查的知识,特此总结 分享一下
Select :用于检索数据
Insert:用于增加数据到数据库
Update:用于从数据库中修改现存的数据
delete:用于从数据库中删除数据
ADO.NET包含四个主要对象
Connection对象:用于连接数据库
command对象:对数据源执行命令
dataReader对象:在只读和只进的连接模式下从数据源读取数据
DataAdapter对象:从数据源读取数据并使用所读取的数据填充数据集对象
下面是具体的一些小实践
- 连接
要访问数据库,首先要与数据库建立连接,这就用到了connection对象来与特定的数据库建立连接 具体语句如下:
Dim cnStr As String= "Persist Security Info=False;User ID=sa;Initial Catalog=需要连接的数据库名;Data Source=IP或本机名字;pwd=密码"
Dim cn As SqlConnection = NewSqlConnection(cnStr)
cn.Open()
2. 命令
ADO.NET 提供了两种访问数据库的基本方式
1.使用数据集,
2 直接对数据库进行操作 这些就需要command对象来执行SQL语句实现,在连接好数据库的基础上,首先我们要构造命令对象
DimcnStr As String = "Persist Security Info=False;User ID=sa;InitialCatalog=StudentSystem;Data Source=192.168.24.74;pwd=123456"
Dim cn As SqlConnection = NewSqlConnection(cnStr)
cn.Open()
Dim sql1 As String = "select *from T_user "
Dim cmdq As SqlCommand = NewSqlCommand(sql1, cn)
例如上述代码便是构造了一个名称为cmdp的命令对象,它使用的连接对象为cn,所要执行的命令是从表T_user中选择所有的数据
而对于command对象的几个基本重要属性如下 :
属性 | 含义 |
commandText | 获取或设置要对数据源执行的SQL语句或存储过程 |
commandTimeout | 获取或设置在终止执行命令的尝试并生成错误之前的等待时间 |
commandType | 获取或设置一个值,该值指示如何解释commandText |
connection | 获取或设置该命令对象使用的connection连接对象 |
对于上段代码中的Dim cmdq As SqlCommand= New SqlCommand(sql1, cn)这句话我们也可以用另一种方式来描述
Dim cmdq As SqlCommand = New SqlCommand()
cmdq.CommandText = sql1
cmdq.Connection = cn
表达的意思是一样的,这里就利用了command对象的几个属性,这样就可以清晰的看出每个属性该怎么应用
3.读取数据(DataReader)
它是一个从数据源中选择某些数据的最简单的方法,DataReader没有构造函数,因此不能实例化,但可以通过command对象的executeReader方法返回一个实例 例如下面的代码
Dim cnStr As String = "Persist SecurityInfo=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
'Dim dr As SqlDataReader =cmdq.ExecuteReader()
'While (dr.Read())
' Dim uid As String = dr("U_ID").ToString()
' Label1.Text = uid
'End While
将需要的数据读取出来并输出到文本里面
4.数据的插入:
这里我自己用了一个小例子,打算在三个文本框中输入内容,将这些内容保存到数据库中 具体实现代码如下:
Dim cnStr As String = "Persist SecurityInfo=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
'Dim dr As SqlDataReader =cmdq.ExecuteReader()
'While (dr.Read())
' Dim uid As String = dr("U_ID").ToString()
' Label1.Text = uid
'End While
在这里我的理解是,在传递值到数据库的过程中,设定以一个参数,通过这个参数在中间来传递值,也就是占位符,文本框把值传给了占位符参数中,而它又把这个值传给了数据库中,进而将数据存储在数据库中! 占位符在这里是一个中间变量,这样传递会更安全些吧,文本框只需知道把值传给占位符就可以了,而哪个表需要这些传就来的数据直接从占位符那里取出就可以了,这是不是也就降低了耦合呢!
3.数据的读取
在我将数据插入到数据库后,加入我想将数据读取出来,显示到控制台上又该如何操作呢,实践代码如下:
Private Sub Button2_Click(sender As Object, eAs EventArgs) Handles Button2.Click
Dim cnStr As String = "PersistSecurity Info=False;User ID=sa;Initial Catalog=StudentSystem;DataSource=192.168.24.74;pwd=123456"
Dim cn As SqlConnection = NewSqlConnection(cnStr)
cn.Open()
Dim sql1 As String = "select *from T_user "
Dim cmdq As SqlCommand = NewSqlCommand(sql1, cn)
Dim adp As SqlDataAdapter = NewSqlDataAdapter()
adp.SelectCommand = cmdq
Dim ds As DataSet = New DataSet()
adp.Fill(ds, "T_user")
TextBox1.DataBindings.Add("text", ds,"T_user.U_userlevel")
TextBox2.DataBindings.Add("text", ds, "T_user.U_ID")
TextBox3.DataBindings.Add("text", ds,"T_user.U_password")
End Sub
EndClass
只需要改变SQL语句即可,在我们插入时用insert 而在读取时需要select 更新时用update 删除时是delete
在上述代码中读取数据时,就用到了DataAdapter 以及DataSet
DataSet是一个数据的脱机容器,可以形象地描述为内存中的数据库。上述代码中我将需要的数据填充到数据集中,然后将数据从数据库中需要使用到适配器,也就是Dataadapter
Dataadapter就像是一座桥梁用于在数据源和数据集之间交换数据
而数据适配器可以读取、添加、删除、更新数据源中的记录 它的四个属性如下:
1.SelectCommand:指定对象以便从数据存储区检索行
2.InsertCommand:指定某命令对象以便想数据存储区插入行
3.UpdateCommand:指定某命令对象以便修改数据存储区中的行
DeleteCommand:指定某命令对象以便从数据存储区中删除行
暂时先总结这些,学无止境,革命尚未成功,战士仍需努力!