一步步写自己SqlHelper类库(六):DataAdapter对象
1.DataAdapter 对象来龙去脉前面我所介绍的ADO.NET对象中,例如Connection对象,Command对象以及DataReader对象,这些对象均属于Data Provider的一部分,而且都是基于连接的。如果,每次我们检索数据库中的表或者行都需要连接一次数据库,那么性能和效率是十分低下的。实际上,ADO.NET提供了基于非连接的核心组件:DataSet。那么存储的数据集合是从哪里来呢?ADO.NET就为DataSet提供了中介:DataApdater数据适配器。
定义:DataAdapter 对象提供连接 DataSet 对象和数据源的桥梁,DataAdapter 使用 Command 对象在数据源中执行 SQL 命令以向 DataSet 中加载数据,并将对 DataSet 中数据的更改协调回数据源。
2.DataAdapter的工作原理
下面我们以Customer表为例,来理解DataAdapter的工作原理。下图详细描述了一个DataAdapter的工作过程。
http://pic002.cnblogs.com/images/2012/349636/2012052523450819.png
3.DataAdapter的属性和方法
3.1属性
尽管DataAdapter类包含很多属性和方法,但很可能每次只使用它们的某个子集。使用DataAdapter可对来自数据源的记录进行操作。通过使用4个DataAdapter属性(指定执行某条SQL语句或调用某个存储过程)中的一个,可以指定所要执行的操作。这些属性实际上是Command类的实例对象:
SelectCommand:引用从数据源中检索行的Command对象。
InsertCommand:引用将插入的行从DataSet写入数据源的Command对象。
UpdateCommand:引用将修改的行从DataSet写入数据源的Command对象。
DeleteCommand:引用从数据源中删除行的Command对象。
3.2方法
使用DataAdapter提供的方法,可以填充DataSet或将DataSet表中的更改传送到相应的数据存储区。这些方法包括:
Fill:使用DataAdapter的这个方法,从数据源增加或刷新行,并将这些行放到DataSet表中。Fill方法调用SelectCommand属性所指定的SELECT语句。
Update:使用DataAdapter对象的这个方法,将DataSet表的更改传送到相应的数据源中。该方法为DataSet的DataTable中每一指定的行调用相应的INSERT、UPDATE或DELETE命令。
4.入门例子
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);cmd.Parameters["@ID"].Value = 1;//给参数sql语句的参数赋值SqlDataAdapter adapter = new SqlDataAdapter();//构造SqlDataAdapteradapter.SelectCommand = cmd;//与sql命令对象绑定,这个必不可少DataSet ds = new DataSet();adapter.Fill(ds);//填充数据。第二个参数是数据集中内存表的名字,可以与数据库中的不同 //Fill方法其实是隐藏的执行了Sql命令对象的CommandText
页:
[1]