您的位置:首页 > 数据库

简单实用的DataSet更新数据库的类+总结(c#)

2014-10-18 08:21 435 查看
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() 取消更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: