天天看點

C#與資料庫通路技術總結(十五)之 DataAdapter對象代碼示例

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

轉載于:https://www.cnblogs.com/zi-xing/p/4058129.html