一、特點(diǎn)介紹
1、表示用于填充 DataSet 和更新 SQL Server 數(shù)據(jù)庫(kù)的一組數(shù)據(jù)命令和一個(gè)數(shù)據(jù)庫(kù)連接。2、在SqlDataAdapter和DataSet之間沒有直接連接。當(dāng)完成SqlDataAdpater.Fill(DataSet)調(diào)用后,兩個(gè)對(duì)象之間就沒有連接了。******SqlDataAdapter的Fill方法調(diào)用前不需要有活動(dòng)的SqlConnection對(duì)象,SqlDataAdapter會(huì)自己打開strConn語句中的數(shù)據(jù)庫(kù),獲取查詢結(jié)果后,關(guān)閉與數(shù)據(jù)庫(kù)的連接。如果已經(jīng)存在SqlConnection對(duì)象,無論是否已經(jīng)打開,SqlDataAdapter執(zhí)行完Fill方法后,均會(huì)將SqlConnection對(duì)象返回到原始狀態(tài)。 當(dāng)程序中的多個(gè)SqlDataAdapter對(duì)象使用都一個(gè)SqlConnection對(duì)象時(shí),為避免多次打開與關(guān)閉SqlConnection對(duì)象,應(yīng)該在調(diào)用SqlDataAdapter的Fill方法前調(diào)用SqlConnection的Open方法打開數(shù)據(jù)庫(kù)的連接,待完成Fill調(diào)用后再調(diào)用SqlConnection的Close方法關(guān)閉數(shù)據(jù)庫(kù)的連接。
******二、使用介紹
1、創(chuàng)建SqlDataAdapter...string strSQL=“Select * from Customers”;SqlCommand cmd=new SqlCommand(strSQL,cn);SqlDataAdapter da=new SqlDataAdapter();da.SelectCommand=cmd;
2、SqlDataAdapter構(gòu)造函數(shù)①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、從查詢中獲取結(jié)果①使用Fill方法...SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);DataSet ds=new DataSet();da.Fill(ds); //這里ds中的表名為Table②使用Fill方法創(chuàng)建DataTable對(duì)象和DataColumn對(duì)象... SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
// 讓ds.Tables[0].TableName為 Customers
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”);④開放和關(guān)閉連接
如 果調(diào)用了一個(gè)SqlDataAdapter對(duì)象的Fill方法,而SelectCommand屬性的Connection關(guān)閉了,那么 SqlDataAdapter就會(huì)開放一個(gè)連接,然后提交查詢、獲取結(jié)果、最后關(guān)閉連接。如果在調(diào)用前開放了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();⑤多次調(diào)用Fill方法刷新DataSet中的數(shù)據(jù),最簡(jiǎn)單的解決方法就是清空DataSet(或DataTable),然后再次調(diào)用DataAdapter對(duì)象的Fill方法。
三、屬性方法事件介紹 1、屬性①AcceptChangeDuringFill:確定由DataAdapter所獲取的行的RowState(默認(rèn)為True)。②DeleteCommand:獲取或設(shè)置一個(gè) Transact-SQL 語句或存儲(chǔ)過程,以從數(shù)據(jù)集刪除記錄。③InsertCommand:獲取或設(shè)置一個(gè) Transact-SQL 語句或存儲(chǔ)過程,以在數(shù)據(jù)源中插入新記錄。④SelectCommand:獲取或設(shè)置一個(gè) Transact-SQL 語句或存儲(chǔ)過程,用于在數(shù)據(jù)源中選擇記錄。⑤UpdateCommand:獲取或設(shè)置一個(gè) Transact-SQL 語句或存儲(chǔ)過程,用于更新數(shù)據(jù)源中的記錄。⑥TableMappings:SqlDataAdapter用來將查詢的結(jié)果映射到DataSet的信息集合。⑦ContinueUpdate:控制SqlDataAdapter在遇到一個(gè)錯(cuò)誤之后是否繼續(xù)提交更改(默認(rèn)為false)。
2、方法①Fill:執(zhí)行存儲(chǔ)于SelectCommand中的查詢,并將結(jié)果存儲(chǔ)在DataTable中。②FillSchema:為存儲(chǔ)在SelectCommand中存儲(chǔ)的查詢獲取架構(gòu)信息。獲取查詢中的各列名稱和數(shù)據(jù)類型。③GetFillParameters:為SelectCommand獲取一個(gè)包含著參數(shù)的數(shù)組。④Update:向數(shù)據(jù)庫(kù)提交存儲(chǔ)在DataSet(或DataTable、DataRows)中的更改。該方法會(huì)返回一個(gè)整數(shù)值,其中包含著在數(shù)據(jù)存儲(chǔ)中成功更新的行數(shù)。
3、事件①FillError:當(dāng)DataAdapter遇到填充DataSet或DataTable的一個(gè)錯(cuò)誤時(shí),該事件被觸發(fā)。②RowUpdated:向數(shù)據(jù)庫(kù)提交一個(gè)修改的行之后被觸發(fā)。③RowUpdating:向數(shù)據(jù)庫(kù)提交一個(gè)修改的行之前被觸發(fā)。
新聞熱點(diǎn)
疑難解答
圖片精選