DataAdapter物件程式碼示例
下面的程式碼將說明如何利用DataAdapter物件填充DataSet物件。
private static string strConnect=" data source=localhost;uid=sa;pwd=aspent;database=LOGINDB" string sqlstr=" select * from USER "; //利用建構函式,建立DataAdapter SqlDataAdapter da=new SqlDataAdapter(sqlstr, strConnect); // 建立DataSet DataSet ds=new DataSet(); //填充,第一個引數是要填充的dataset物件,第二個引數是填充dataset的datatabble da.Fill(ds, "USER" );
上述程式碼使用DataApater物件填充DataSet物件的步驟如下。
(1)根據連線字串和SQL語句,建立一個SqlDataAdapter物件。
這裡,雖然沒有出現Connection和Command物件的控制語句,但是SqlDataAdapter物件會在建立的時候, 自動構造對應的SqlConnection和SqlCommand物件,
同時根據連線字串自動初始化連線。要注意的是,此時SqlConnection和SqlCommand物件都處於關閉狀態。
(2)建立DataSet物件,該物件需要用DataAdapter填充。
(3)呼叫DataAdapter的Fill方法,通過DataTable填充DataSet物件。
由於跟隨DataAdapter物件建立的Command裡的SQL語句是訪問資料庫裡的USER表,
所以在呼叫Fill方法的時候,在開啟對應的SqlConnection和SqlCommand物件後,會用USER表的資料填充建立一個名為USER的DataTable物件,再用該DataTable填充到DataSet中。
下面的程式碼演示瞭如何使用DataAdapter物件將DataSet中的資料更新到資料庫。
private static string strConnect=" data source=localhost;uid=sa;pwd=aspent;database=LOGINDB" string sqlstr=" select * from USER "; //利用建構函式,建立DataAdapter SqlDataAdapter da=new SqlDataAdapter(sqlstr, strConnect); // 建立DataSet DataSet ds=new DataSet(); //填充,第一個引數是要填充的dataset物件,第二個引數是填充dataset的datatabble da.Fill(ds, "USER" ); //以下程式碼將更新DataSet裡的資料 //在DataSet裡的名為"USER"的DataTable裡新增一個用於描述行記錄的DataRow物件 DataRow dr=ds.Tables["USER"].NewRow(); //通過DataRow物件新增一條記錄 dr["USERID"]="ID2" ; dr["USERNAME"]="TOM" ; ds.Tables["USER"].Rows.Add(dr); //更新到資料庫裡 SqlCommandBuilder scb=new SqlCommandBuilder(da); da.update(ds, "USER");
在上述程式碼裡,
首先使用DataAdapter填充DataSet物件,
然後通過DataRow物件,向DataSet新增一條記錄,
最後使用DataSet的update方法將新增的記錄提交到資料庫中。
執行完update語句,資料庫USER中就多了一條USERID是ID2、USERNAME是TOM的記錄。
此外,上述程式碼出現的SqlCommandBuilder物件用來對資料表進行操作。
用了這個物件,就不必再繁瑣地使用DataAdapter的UpdataCommand屬性來執行更新操作。