ADO.NET读书笔记系列之------SqlDataAdapter对象
2024-07-21 02:06:30
供稿:网友
一、特点介绍
1、表示用于填充 dataset 和更新 sql server 数据库的一组数据命令和一个数据库连接。
2、在sqldataadapter和dataset之间没有直接连接。当完成sqldataadpater.fill(dataset)调用后,两个对象之间就没有连接了。
二、使用介绍
1、创建sqldataadapter
...
string strsql=“select * from customers”;
sqlcommand cmd=new sqlcommand(strsql,cn);
sqldataadapter da=new sqldataadapter();
da.selectcommand=cmd;
2、sqldataadapter构造函数
①string strconn=“provider=.....”;
string strsql=“select * from customers”;
sqldataadapter da=new sqldataadapter(strsql,strconn);
②string strconn=“provider=.....”;
sqlconnection cn=new sqlconnection(strconn);
sqldataadapter da=new sqldataadapter(“select * from customers”,cn);
③string strconn=“provider=.....”;
string strsql=“select * from customers”;
sqlconnection cn=new sqlconnection(strconn);
sqlcommand cmd=new sqlcommand(strsql,cn);
sqldataadapter da=new sqldataadapter(cmd);
3、从查询中获取结果
①使用fill方法
...
sqldataadapter da=new sqldataadapter(strsql,strconn);
dataset ds=new dataset();
da.fill(ds); //这里ds中的表名为table
②使用fill方法创建datatable对象和datacolumn对象
...
sqldataadapter da=new sqldataadapter(strsql,strconn);
da.tablemapping.add(“table”,“customers”);
dataset ds=new dataset();
da.fill(ds);
③使用重载fill方法
sqldataadapter.fill(dataset,“customers”);
sqldataadapter.fill(datatable);
sqldataadapter.fill(dataset,intstartrecord,intnumrecords,“tablename”);
④开放和关闭连接
如果调用了一个sqldataadapter对象的fill方法,而selectcommand属性的connection关闭了,那么sqldataadapter就会开放一个连接,然后提交查询、获取结果、最后关闭连接。如果在调用前开放了connection,那么操作之后仍然保持开放。
...
sqldataadapter dacustomers,daorders;
dacustomers=new sqldataadapter(“select * from customers”,cn);
daorders=new sqldataadapter(“select * from orders”,cn);
dataset ds=new dataset();
cn.open();
dacustomers.fill(ds);
daorders.fill(ds);
cn.close();
⑤多次调用fill方法
刷新dataset中的数据,最简单的解决方法就是清空dataset(或datatable),然后再次调用dataadapter对象的fill方法。
三、属性方法事件介绍
1、属性
①acceptchangeduringfill:确定由dataadapter所获取的行的rowstate(默认为true)。
②deletecommand:获取或设置一个 transact-sql 语句或存储过程,以从数据集删除记录。
③insertcommand:获取或设置一个 transact-sql 语句或存储过程,以在数据源中插入新记录。
④selectcommand:获取或设置一个 transact-sql 语句或存储过程,用于在数据源中选择记录。
⑤updatecommand:获取或设置一个 transact-sql 语句或存储过程,用于更新数据源中的记录。
⑥tablemappings:sqldataadapter用来将查询的结果映射到dataset的信息集合。
⑦continueupdate:控制sqldataadapter在遇到一个错误之后是否继续提交更改(默认为false)。
2、方法
①fill:执行存储于selectcommand中的查询,并将结果存储在datatable中。
②fillschema:为存储在selectcommand中存储的查询获取架构信息。获取查询中的各列名称和数据类型。
③getfillparameters:为selectcommand获取一个包含着参数的数组。
④update:向数据库提交存储在dataset(或datatable、datarows)中的更改。该方法会返回一个整数值,其中包含着在数据存储中成功更新的行数。
3、事件
①fillerror:当dataadapter遇到填充dataset或datatable的一个错误时,该事件被触发。
②rowupdated:向数据库提交一个修改的行之后被触发。
③rowupdating:向数据库提交一个修改的行之前被触发。