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对象为基础,驾驭着它们两个共同驰骋“数据源世界。”