zoukankan      html  css  js  c++  java
  • ADO.NET中的DataSet和DataAdapter

    DataSet和DataTable

    DataSet是一个数据集合,存储在内存中,算是一个临时的数据库。

    个人觉得,不是太常用了,DataTable或者直接用List<model>存数据比这个好。

    还是也说一下使用方法吧。

     

    DataSet ds =new DataSet("school");
    DataTable dt = new DataTable("stu");
    dt.columns.Add("列名",typeof(string));

     

    //注意DataRow dr =new DataRow();  不能这样用,为什么呢?看下面绿字

    /*

       DataRow的构造方法是 protected internal的,你是调用不到的。

      但是跟DataRow同一个程序集的 DataTable可以调。

    */

    DataRow dr = dt.NewRow();
    dr["列名"] ="xxx";
    dt.Rows.Add(dr);
    ds.Tables.Add(dt);

    DataAdapter

    该类是一个适配器模式的应用。那么这个适配器究竟适配了什么呢?

    DataAdapter适配了DataTable和DataReader返回值的适配。

     

    string conn ="";   //连接字符串
    string sql ="";       //sql语句
    /*DataAdapter是对 Connection、Command、以及DataReader的封装 */
    DataAdapter da =new DataAdapter(sql,conn);
    DataTable dt =new DataTable();
    /*           *****说明******
      1. 先构造好列,再填充的话,会提高效率。
      2. Fill(0,10,dt);是一种分页方式,适用于小项目。
          去一页,读全部!
    */
    da.Fill(0,10,dt);

    推荐使用DataReader

    1.一种常用获取表的方式

    //简写哈,简写
    DataSet ds =new DataSet();
    DataAdapter da =new DataAdapter(SQL语句,连接字符串)
    da.Fill(ds);
    //其实,真的做项目,这种方式获取表并不推荐。
    DataTable dt =ds.Tables[0];

    2.推荐做法

    //还是简写哈,简写
    using(Connection conn =new Connection("连接字符串"))
    {
         using(Command cmd =conn.CreateCommand())
        {
               using(DataReader reader = cmd.ExecuteReader())
               {
                    DataTable dt =new DataTable();
                    dt.Load(reader);
               }
        }     
    }

    DataSet在何种情况下使用?

    1.C/S模式下 

    在C/S模式下使用DataSet。

    clipboard[7]

    2.在B/S模式下 

    在B/S模式下使用DataSet。B/S模式下(ASP.NET)使用DataSet,有1000个请求,

    Web服务器内存中就会有1000个DataSet。是不是要用,还是自己取舍。

    clipboard[8]

     

     

     
     
  • 相关阅读:
    数据结构与算法题目集(中文)7-25 朋友圈 (25分) 并查集
    数据结构与算法题目集(中文)7-24 树种统计 (25分)
    数据结构与算法题目集(中文)7-23 还原二叉树 (25分)
    数据结构与算法题目集(中文)7-22 堆栈模拟队列 (25分)
    数据结构与算法题目集(中文)7-21 求前缀表达式的值 (25分)
    [SDOI2018]反回文串
    ARC 064 F-Rotated Palindromes
    AGC014-F Strange Sorting
    AGC011-E Increasing Numbers
    AGC011-C Squared Graph
  • 原文地址:https://www.cnblogs.com/mcad/p/4212466.html
Copyright © 2011-2022 走看看