C#与数据库访问技术总结(十四)之DataAdapter对象
时间:2022-03-14 01:58
//后继代码
同样,可以使用上述方式给其他的InsertCommand、DeleteCommand和UpdateCommand属性赋值。
当在代码里使用DataAdapter对象的SelectCommand属性获得数据表的连接数据时,
如果表中数据有主键,就可以使用CommandBuilder对象来自动为这个DataAdapter对象隐形地生成其他3个InsertCommand、DeleteCommand和UpdateCommand属性。
这样,在修改数据后,就可以直接调用Update方法将修改后的数据更新到数据库中,而不必再使用InsertCommand、DeleteCommand和UpdateCommand这3个属性来执行更新操作。
函数定义
参数说明
函数说明
SqlDataAdapter()
不带参数
创建SqlDataAdapter对象
SqlDataAdapter(SqlCommand selectCommand
selectCommand:指定新创建对象的SelectCommand属性
创建SqlDataAdapter对象。用参数selectCommand设置其Select Command属性
SqlDataAdapter(string selectCommandText, SqlConnection selectConnection)
selectCommandText:指定新创建对象的SelectCommand属性值
selectConnection:指定连接对象
创建SqlDataAdapter对象。用参数selectCommandText设置其Select Command属性值,并设置其连接对象是selectConnection
SqlDataAdapter(string selectCommandText,String selectConnectionString
selectCommandText:指定新创建对象的SelectCommand属性值
selectConnectionString:指定新创建对象的连接字符串
创建SqlDataAdapter对象。将参数selectCommandText设置为Select Command属性值,其连接字符串是selectConnectionString
参数说明
函数说明
SqlDataAdapter()
不带参数
创建SqlDataAdapter对象
SqlDataAdapter(SqlCommand selectCommand
selectCommand:指定新创建对象的SelectCommand属性
创建SqlDataAdapter对象。用参数selectCommand设置其Select Command属性
SqlDataAdapter(string selectCommandText, SqlConnection selectConnection)
selectCommandText:指定新创建对象的SelectCommand属性值
selectConnection:指定连接对象
创建SqlDataAdapter对象。用参数selectCommandText设置其Select Command属性值,并设置其连接对象是selectConnection
SqlDataAdapter(string selectCommandText,String selectConnectionString
selectCommandText:指定新创建对象的SelectCommand属性值
selectConnectionString:指定新创建对象的连接字符串
创建SqlDataAdapter对象。将参数selectCommandText设置为Select Command属性值,其连接字符串是selectConnectionString
O1eDbDataAdapter的构造函数类似SqlDataAdapter的构造函数,如下表2所述。
参数说明 |
函数说明 |
不带参数 |
创建OleDbDataAdapter对象 |
selectCommand:指定新创建对象的SelectCommand属性 |
创建OleDbDataAdapter对象。用参数selectCommand设置其SelectCommand属性 |
selectCommandText: 指定新创建对象的SelectCommand属性值 selectConnection:指定连接对象 |
创建SqlDataAdapter对象。用参数selectCommandText设置其SelectCommand属性值,并设置其连接对象是selectConnection |
selectCommandText:指定新创建对象的SelectCommand属性值 selectConnectionString:指定新创建对象的连接字符串 |
创建OleDbDataAdapter对象。将参数selectCommandText设置为SelectCommand属性值,其连接字符串是selectConnectionString |
2.Fill类方法.
当调用Fill方法时,它将向数据存储区传输一条SQL SELECT语句。
该方法主要用来填充或刷新DataSet,返回值是影响DataSet的行数。
该方法的常用定义如表所示。
参数说明 |
函数说明 |
dataset:需要更新的DataSet |
根据匹配的数据源,添加或更新参数所指定的DataSet,返回值是影响的行数 |
dataset:需要更新的DataSet srcTable:填充DataSet的dataTable名 |
根据dataTable名填充DataSet |
3.int Update(DaraSetdataSet)方法
当程序调用Update方法时,DataAdapter将检查参数DataSet每一行的RowState属性,根据RowState属性来检查DataSet里的每行是否改变和改变的类型,并依次执行所需的INSERT、UPDATE或DELETE语句,将改变提交到数据库中。
这个方法返回影响DataSet的行数。
更准确地说,Update方法会将更改解析回数据源,但自上次填充DataSet以来,其他客户端可能已修改了数据源中的数据。
若要使用当前数据刷新DataSet,应使用DataAdapter和Fill方法。
新行将添加到该表中,更新的信息将并入现有行。
Fill方法通过检查DataSet中行的主键值及SelectCommand返回的行来确定是要添加一个新行还是更新现有行。
如果Fill方法发现DataSet中某行的主键值与SelectCommand返回结果中某行的主键值相匹配,则它将用SelectCommand返回的行中的信息更新现有行,并将现有行的RowState设置为Unchanged。
如果SelectCommand返回的行所具有的主键值与DataSet中行的任何主键值都不匹配,则Fill方法将添加RowState为Unchanged的新行。