国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

簡單實用的DataSet更新數據庫的類+總結(c#)

2024-07-21 02:17:37
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

以前經常用sql語句(update)更新數據庫,有使用用起來不是很方便,特別是數據量比較大的情況下(比如數據表)很麻煩~~后來感覺用dataset更新數據庫是不錯的選擇.于是急著寫了一個用ataset更新數據庫的類如下:(后面有使用說明,總結)

using system;

using system.data;

using system.data.sqlclient;

using system.windows.forms;

namespace winapplication

{

     public class sqlaccess

     {

         //與sql server的連接字符串設置

         private string _connstring;

         private string _strsql;

 

         private sqlcommandbuilder sqlcmdbuilder;

         private dataset ds = new dataset();

         private sqldataadapter da;

         public sqlaccess(string connstring,string strsql)

         {

              this._connstring=connstring;

         }

 

         private sqlconnection getconn()

         {

              try

              {

                   sqlconnection connection = new sqlconnection(this._connstring);

                   connection.open();

                   return connection;

              }

              catch (exception ex)

              {

                   messagebox.show(ex.message,"數據庫連接失敗");

                   throw;

              }

         }

 

         //根據輸入的sql語句檢索數據庫數據

         public dataset selectdb(string strsql,string strtablename)

         {

              try

              {

              this._strsql = strsql;

              this.da = new sqldataadapter(this._strsql,this.getconn());

              this.ds.clear();

              this.da.fill(ds,strtablename);

              return ds;//返回填充了數據的dataset,其中數據表以strtablename給出的字符串命名

              }

              catch (exception ex)

              {

                   messagebox.show(ex.message,"數據庫操作失敗");

                   throw;

              }

         }

 

         //數據庫數據更新(傳dataset和datatable的對象)

         public dataset updateds(dataset changedds,string tablename)

         {

              try

              {

              this.da = new sqldataadapter(this._strsql,this.getconn());

              this.sqlcmdbuilder = new sqlcommandbuilder(da);

              this.da.update(changedds,tablename);

              changedds.acceptchanges();

              return changedds;//返回更新了的數據庫表

              }

              catch (exception ex)

              {

                   messagebox.show(ex.message,"數據庫更新失敗");

                   throw;

              }

                    }

使用說明總結:

1. getconn方法創建一個數據庫連接,返回sqlconnection。

2.使用的select命令中必須包含主鍵,這點大家都知道的!

3. this.da.fill(ds,strtablename) 填充數據集

4.構造commandbuilder對象時,將dataadapter對象作為構造函數參數傳入:

  this.sqlcmdbuilder = new sqlcommandbuilder(da);

5. 在調用updateds()更新數據庫前,請檢查changedds是否已經被更新過,用changedds.[tablename] getchanges() != null;

6.用this.da.update(changedds,tablename)方法更新數據,然后調用changedds.acceptchanges()才能真正的更新數據庫,調用 changedds.rejectchanges() 取消更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大厂| 乐山市| 兰西县| 夏津县| 永年县| 如东县| 信阳市| 阳城县| 寿阳县| 固安县| 客服| 平果县| 曲松县| 桃源县| 大兴区| 靖州| 临安市| 灵丘县| 康乐县| 共和县| 安庆市| 康平县| 枣庄市| 深圳市| 平阴县| 鹿泉市| 娄烦县| 枣阳市| 嘉义市| 同德县| 寿光市| 新乡市| 寿宁县| 四子王旗| 弥渡县| 阳信县| 沐川县| 赤水市| 高邑县| 云南省| 岐山县|