C#與資料庫訪問技術總結(十五)之 DataAdapter物件程式碼示例

[0]發表於2014-11-05

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屬性來執行更新操作。

 

相關文章