久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SqlCommandBuilder的作用

 行走在理想邊緣 2019-08-09

最近看一個(gè)案例,,關(guān)于如何向數(shù)據(jù)庫(kù)傳數(shù)據(jù),,頗有發(fā)現(xiàn),。

以前我的數(shù)據(jù)都是采用Sql代碼用SqlCommand一條一條語(yǔ)句的傳入數(shù)據(jù)庫(kù)。

但是今天發(fā)現(xiàn)有更好的方法,。

代碼如下:

SqlConnection cn=new SqlConnection(ConStr);

   DataSet DS=new DataSet();

   SqlDataAdapter Sda=new SqlDataAdapter("Select * from Table1",cn);

   try

   {

    Sda.Fill(DS,"Table1");

    MessageBox.Show(DS.Tables[0].Rows.Count.ToString());

   }

   catch(Exception er)

   {

    MessageBox.Show(er.Message);

   }

   //DataSet DS2=DS.Clone();

   //Sda.SelectCommand=new SqlCommand("Select * from Table1");

   DataRow dr=DS.Tables[0].NewRow();

   dr["F1"]=5;

   dr["F2"]=5;

   dr["F3"]=5;

   DS.Tables[0].Rows.Add(dr);

   dr=DS.Tables[0].NewRow();

   dr["F1"]=6;

   dr["F2"]=6;

   dr["F3"]=6;

   DS.Tables[0].Rows.Add(dr);

   SqlCommandBuilder SCB=new SqlCommandBuilder(Sda);

   try

   {

    Sda.Update(DS,"Table1");

   }

   catch(Exception er)

   {

    MessageBox.Show(er.Message);

   }

   Sda.Dispose();

   cn.Close();

數(shù)據(jù)庫(kù)用的是SQL2000,,先在數(shù)據(jù)庫(kù)中建立Table1的臨時(shí)表,建立字段MainID,F1,F2,F3

初始數(shù)據(jù)如下

MainID     F1    F2    F3

1                1        1    1

2                2        2    2

3                3        3    3

4                4        4    4

注意到,,我先把數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀出來(lái),,賦值到DS中

結(jié)果顯然為4行

然后我在該數(shù)據(jù)集DS中添加2個(gè)同構(gòu)行

這是注意了,我沒有做任何的Insert相關(guān)語(yǔ)句

打算直接采用SqlDataAdapter.Update(DataSet,,TableScr)方法

但是注意,,直接用是不行的,會(huì)提示缺少Insert命令的關(guān)聯(lián)

這是可以用了如黃色高亮標(biāo)記的語(yǔ)句

SqlCommandBuilder SCB=new SqlCommandBuilder(Sda);

這是所有關(guān)聯(lián)就都建立好了,,全自動(dòng),。奇妙,詭異阿

這樣就方便多了,。

恩,,更多的相關(guān)功能正在研究中。

 =============================================================

使用SqlCommandBuilder與SqlDataAdapter結(jié)合使用,,可以方便地去數(shù)據(jù)庫(kù)進(jìn)行更新,。只要指定Select 語(yǔ)句就可以自動(dòng)生成Insert,update,delete語(yǔ)句,,但要注意一點(diǎn),。Select 語(yǔ)句中返回的列要包括主鍵列,,否則將無(wú)法產(chǎn)生Update,和Delete語(yǔ)句。相應(yīng)的操作將無(wú)法執(zhí)行

public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName)

{

   SqlConnection myConn = new SqlConnection(myConnection);

   SqlDataAdapter myDataAdapter = new SqlDataAdapter();

   myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);

   SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter);

   myConn.Open();

   DataSet ds = new DataSet();

   myDataAdapter.Fill(ds, myTableName);

   //code to modify data in DataSet here

   //Without the SqlCommandBuilder this line would fail

   myDataAdapter.Update(ds, myTableName);

   myConn.Close();

   return ds;

}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多