首页 > 编程 > .NET > 正文

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:向数据库提交一个修改的行之前被触发。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表