ADO.NET——DataAdapter對象,ado.netdataadapter
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對象為基礎,駕馭著它們兩個共同馳騁“資料來源世界。”