您的位置:首页 > 数据库

简单实用的DataSet更新数据库的类+总结(转~给懒得写sp的人)

2005-12-12 00:18 495 查看
[align=left]以前经常用sql语句(update)更新数据库,有使用用起来不是很方便,特别是数据量比较大的情况下(比如数据表)很麻烦~~后来感觉用DataSet更新数据库是不错的选择.于是急着写了一个用ataSet更新数据库的类[/align][align=left]如下:(后面有使用说明,总结)[/align]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() 取消更新。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: