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