欢迎投稿

今日深度:

ADO.NET——DataAdapter对象

ADO.NET——DataAdapter对象


DataAdapter对象

来源以及作用:前面我所介绍的ADO.NET对象中,例如Connection对象,Command对象以及DataReader对象,这些对象均属于Data Provider的一部分,而且都是基于连接的。如果,每次我们检索数据库中的表或者行都需要连接一次数据库,那么性能和效率是十分低下的。实际上,ADO.NET提供了基于非连接的核心组件:DataSet。那么存储的数据集合是从哪里来呢?ADO.NET就为DataSet提供了中介:DataApdater数据适配器。

描述:DataAdapter对象提供连接 DataSet对象和数据源的桥梁,DataAdapter 使用 Command 对象在数据源中执行SQL命令以向DataSet中加载数据,并将对DataSet中数据的更改协调回数据源。

工作原理:DataApapter本质上就是一个数据调配器。当我们需要查询数据时,它从数据库检索数据,并填充要本地的DataSet或者DataTable中;当我需要更新数据库时,它将本地内存的数据填充到数据库,并执行更新命令。

功能:DataAdapter是最复杂的ADO.NET组件,是因为它是架构在所有其他DataProvider对象之上的。Connection对象、DataReader对象,Paramter对象以及Command对象,都尽可能的为它服务。总体来说,DataAdapter主要有三大功能:

1、数据检索:尽可能用最简单的方法填充数据源到本地DataSet或者DataTable中。细致的说,DataAdapter用一个DataReader实例来检索数据,因此你必须提供一个Select查询语句以及一个连接字符串。

2、数据更新:将本地修改的数据返回给外部的数据源,从数据库查询数据时,我们仅仅只需要一条基本的Select语句,而更新数据库则需要区分Insert,Update,Delete语句。

3、表或列名映射:维护本地DataSet表名和列名与外部数据源表名与列名的映射关系。

属性:

1、SelectCommand对象:引用从数据源中检索的Command对象。

2、UpdateCommand:引用将修改的行从DataSet写入数据源的Command对象。

3、InsertCommand:引用将插入的行从DataSet写入数据源的Command对象

4、DeleteCommand:引用从数据源中删除行的Command对象。

方法:

1、Fill:使用DataAdapter的这个方法,从数据源增加或刷新行,并将这些行放到DataSet表中。Fill方法调用SelectCommand属性所指定的SELECT语句。

2、Update:使用DataAdapter对象的这个方法,将DataSet表的更改传送到相应的数据源中。该方法为DataSet的DataTable中每一指定的行调用相应的INSERT、UPDATE或DELETE命令。

应用举例

public void SqlAdapterDemo(string connStr)
{
  SqlConnection conn = new SqlConnection(connStr);   //创建连接对象

  SqlCommand cmd = conn.CreateCommand();             //创建sql命令对象
  cmd.CommandType = CommandType.Text;
  cmd.CommandText = "select * from products = @ID";  //sql语句

  cmd.Parameters.Add("@ID", SqlDbType.Int);          <span style="font-family:KaiTi_GB2312;">//添加参数</span>
  cmd.Parameters["@ID"].Value = 1;                   //给参数sql语句的参数赋值

  SqlDataAdapter adapter = new SqlDataAdapter();     //构造SqlDataAdapter
  adapter.SelectCommand = cmd;                       <span style="color:#FF0000;">//与sql命令对象绑定,这个必不可少</span>

  DataSet ds = new DataSet();
  adapter.Fill(ds);                                  //填充数据。
}
感觉DataAdapter对象好高大上啊,它的使用必须以前面所讲的Command对象和Connection对象为基础,驾驭着它们两个共同驰骋“数据源世界。”

www.htsjk.Com true http://www.htsjk.com/DB2/20356.html NewsArticle ADO.NET——DataAdapter对象 DataAdapter对象 来源以及作用:前面我所介绍的ADO.NET对象中,例如Connection对象,Command对象以及DataReader对象,这些对象均属于Data Provider的一部分,而且都是基于连...
评论暂时关闭