三、DataAdapter对象
DataAdapter对象又称为“数据适配器”,主要作用是在数据库与DataSet对象之间传递数据。根据Command对象要求,将获取数据填入DataSet对象中。
1、创建DataAdapter对象
可以利用“工具箱”中的DataAdapter组件创建,也可以代码编写。
1)创建SqlDataApter对象语法
Dim 对象名 AsNew SqlDataAdapter
2)创建OleDbDataAdapter对象语法
Dim 对象 As New OleDataAdapter
SqlDataAdapter类或OleDbDataAdapter类有如下4种重载形式
- SqlDataAdapter()
- SqlDataAdapter(SqlCommand 对象名)
- SqlDataAdapter(SQL 语句或存储过程,Connection 对象名)
- SqlDataAdapter(SQL 语句或存储过程,连接字符串)
2、DataAdapter类的主要属性
属相名称 | 属性说明 |
SelectCommand | 用于设置从数据库中选择数据的SQL语句或存储过程 |
InsertCommand | 用于设置向数据库插入新纪录的SQL语句或存储过程 |
DeleteCommand | 用于设置从数据库中删除记录的sql语句或存储过程 |
UpdateCommand | 用于设置更新数据源中记录的SQL语句或存储过程 |
注意:这4个属性的值不能直接设置成字符串类型的SQL语句,而应设置成Commad对象。
3、DataAdapter对象的主要方法
- Fill方法
用于向DataSet对象中填充从数据源中读取的数据。调用Fill方法的语法形式常见的:
DataAdapter 对象名.Fill(DataSet 对象名,“数据表名”)
第一个参数是数据集对象名,表示要填充的数据集对象;第二个参数是一个字符串,表示本地缓冲区中建立的临时表的名称。
提示:Fill方法具有自动打开和关闭的能力。
- Update方法
用于将数据集DataSet对象中的数据按 IsertCommand属性、DeleteCommand属性和UpdateCommand属性所定义的形式向数据库中更新,即调用3个属性中所定义的SQL语句,更新数据源。
Update方法常见的调用格式如下:
RDataAdapter 对象名.Update(DataSet 对象名,“数据表名”)
其中第一参数是数据集对象名,表示要将哪个数据集对象中的数据更新到数据源;第二参数是个字符串,表示临时表的名称。
四、DataSet对象
DataSet对象是内存中的数据缓存,专门用来存储从数据源中读出的数据,就像是一个被复制到内存中的数据库的副本,其结构与真正的数据库相似,也可以同时存储多个数据表以及数据表之间的关联。这样,对数据进行的各种处理,都在DataSet对象上完成,不必与数据库一直保持联系。当在DataSet上完成所有操作后,再将对数据的更改通过Update命名回传数据源
1、DataSet对象
1)创建DataSet对象
代码编写:Dim 对象名 As DataSet
2)DataSet对象的常用属性
DataSet对象模型比较复杂,DataSet对象中有许多属性,其中最重要的是Tables属性和Relations属性
1)Tables属性。它是一个DataTable对象集合,每个DataTable对象代表数据库中的一个表。表示某个特定表的方法:数据集名.Tables(索引值),索引从0开始。
2)Relations属性。Relations是一个DataRelation对象集,每个DataRelation对象表达了数据表之间的关系。
3)DataSet对象的常用方法
1)HasChanges方法。用于判断DataSet中的数据是否变化,有变化,返回为Ture;否则False。
2)GetChanges方法。用于获得DataSet中所有变动的数据,返回一个DataSet对象。弥补了在调用DataAdapter对象中的Update方法更新数据时的不足(直接更新数据库中的所有数据)。但是如果DataSet中的数据没有变化,GetChanges方法返回空,用空的对象去更新数据库会出现异常。为了避免出现异常,可以在更新前利用HasChanges方法判断是否有数据被被修改。
If 数据集名.HasChanges Then
Dim DsChild As DataSet=数据集名.GetChanges
DataAdapter 对象名.Update(DsChild,"数据表名")
End if
3)AcceptChange方法。该方法用于提交自加载DataSet或上次调用AcceptChanges以来对DataSet进行的所有更改。提交后,GetChanges方法返回为空。
4)Clear方法。该方法用于清除DataSet中所有数
2、DataTable对象
每个DataTable对象代表数据库中的一个表,每个DataTable数据表豆油相应的行和列组成,一个DataTable对象有两个重要的属性,即Columns属性和Row属性。
Columns属性是一个数据表DataColumn对象的集合,每一个DataColumn对象代表了数据中的每一个列;
而Rows属性值是一个数据表的DataRow对象的集合。每个DataRow对象代表了数据表中的每一行数据。
Rows属性可以通过索引值表示某一条特定的记录,第一条记录的索引值为0。
注意:NewRow方法只是生成一个DataRow对象,并不能向表中添加信息的行。
3、DataRow对象
DataRow对象用来表示DataTable中单独的一条记录。每一条记录中都包含多个字段,DataRow对象用Itme属性表示这些字段,Item属性后加上索引值或字段名可以表示一个字段的内容。如:DataSet1.Tables(0).Row(0).Item(0),表示DataSet数据集中的第一个表的第一记录的的第一个字段。
DataRow的常用方法:
1)Add方法。该方法用于向DataTable对象中添加一个新行。
2)Delete方法。该方法用于从DataTable对象的DataRow集合中删除指定行。删除行时,必须通过Rows属性的索引值指定要删除行的位置。