zoukankan      html  css  js  c++  java
  • 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创建了一个副本,用宋避免误操作。

  • 相关阅读:
    bzoj 3531 [Sdoi2014]旅行(树链剖分,线段树)
    bzoj 2243 [SDOI2011]染色(树链剖分,线段树)
    spoj 375 Query on a tree(树链剖分,线段树)
    bzoj 2618 2618: [Cqoi2006]凸多边形(半平面交)
    C++中int型与char型相互转换的问题
    408 二进制求和
    407 加一
    斐波那契数列几种算法及时间复杂度分析
    397 Longest Continuous Increasing Subsequence
    376 二叉树的路径和
  • 原文地址:https://www.cnblogs.com/zi-xing/p/4058529.html
Copyright © 2011-2022 走看看