乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      SqlCommandBuilder的作用

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

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

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

      但是今天發(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ù)庫用的是SQL2000,先在數(shù)據(jù)庫中建立Table1的臨時表,建立字段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ù)庫中讀出來,賦值到DS中

      結(jié)果顯然為4行

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

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

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

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

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

      SqlCommandBuilder SCB=new SqlCommandBuilder(Sda);

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

      這樣就方便多了。

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

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

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

      }

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多