C#与数据库访问技术总结(十七)
使用DataSet对象访问数据库
当对DataSet对象进行操作时,DataSet对象会产生副本,所以对DataSet里的数据进行编辑操作不会直接对数据库产生影响,而是将DataRow的状态设置为added、deleted或changed,最终的更新数据源动作将通过DataAdapter对象的update方法来完成。
DataSet对象的常用方法如下。
- void AcceptChanges():该方法用来提交DataSet里的数据变化。
- void clear():该方法用来清空DataSet里的内容。
- DataSet copy():该方法把DataSet的内容复制到其他DataSet中。
- DataSet GetChanges():该方法用来获得在DataSet里已经被更改后的数据行,并把这些行填充到Dataset里返回。
- bool HasChanges():如果DataSet在创建后或执行AcceptChanges后,其中的数据没有发生变化,返回True,否则返回False。
- void RejectChanges():该方法撤销DataSet自从创建或调用AcceptChanges方法后的所有变化。
DataSet对象一般是和DataAdapter对象配合使用。
下面的代码演示了如何综合使用DataSet和DataAdapter对象访问数据库。
//省略获得连接对象的代码 …… //创建DataAdapter string sql= " select * from user "; SqlDataAdapter sda=new SqlDataAdapter(sql, conn); // 创建并填充Dataset DataSet ds=new DataSet(); sda.fill(ds, "user"); //给Dataset创建一个副本,操作对副本进行,以免因误操作而破坏数据 DataSet dsCopy=ds.Copy(); DataTable dt=ds.Table["user"]; //对DataTable中的DataRow和DataColumn对象进行操作 …… //最后将更新提交到数据库中 sda.update(ds, "user");
上述代码的主要业务流程如下。
(1)创建DataAdapter和DataSet对象,并用DataAdapter的SQL语句生成的表填充到 DataSet的DataTable中。
(2)使用DataTable对表进行操作,例如做增、删、改等动作。
(3)使用DataAdapter的update语句将更新后的数据提交到数据库中。
另外,上述代码在操作DataSet前,为DataSet创建了一个副本,用宋避免误操作。
版权声明:本博文属于作者原创或从其他地方学习而来的博文,未经许可不得转载.