首页 > 开发 > 综合 > 正文

简单实用的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() 取消更新。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表