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创建了一个副本,用宋避免误操作。

posted @ 2014-12-01 12:48  [0]  阅读(1374)  评论(0编辑  收藏  举报