zoukankan      html  css  js  c++  java
  • SqlDataReader 和SqlDataAdapter 区别

    SqlDataReader和SqlDataAdapter 区别
    一,SqlDataReader //基于连接,只读访问 适合数据量较小。
          SqlDataAdapter //基于非连接,适于数据量较大时,可以另行修改,最后再把修改结果返回给数据库。要求资源也大一点
    二,SqlDataAdapter 读取数据后将数据集放入DataSet ,DataSet 的数据存在本地客服机内存。
    三,SqlDataReader返回的是一个数据读写器,只能一条条的读,操作起来不灵活,一般在只读的时候才用到。
         SqlDataAdapter返回的是数据集或者表,可以对其中的数据作任意操作
    四,写法上不同:
         SqlDatReader执行前须先打开数据库,然后须生成一个COMMAND对象。再由COMMAND.EXECUTEREADER()方法赋值。完成后须手动关闭联接。
         SqlCommand cmd = new SqlCommand("select * from stu", conn);
                conn.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                。。。。。
                conn.close();
           SqlDataAdapter 执行时,自动打开数据库,且不用Command的ExecuteReader方法进行赋值,完成后自动断开联接。
                SqlDataAdapter adptr = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                adptr.Fill(ds, "stu");
    实例:
    1,运用SqlDataReader 读取数据
    class DataReader
        {
            static void Main()
            {
                string str = "server=localhost;uid=sa;pwd=123;database=northwind";
                SqlConnection conn = new SqlConnection(str);
                SqlCommand cmd = new SqlCommand("select * from stu", conn);
                conn.Open();
                SqlDataReader rdr = cmd.ExecuteReader();
                 DataTable table=new Datable();
                table.Load(rdr);
                 rdr.Close();
                conn.Close();
            }
    2,运用SqlDataAdapter +DataSet 读取修改数据
        class SqlDataAdapter
        {
            static void Main()
            {
                string str = "server=localhost;uid=sa;pwd=123;database=northwind";
                SqlConnection conn = new SqlConnection(str);
                string sql = "select * from stu";
                SqlDataAdapter adptr = new SqlDataAdapter(sql, conn);//Adepter对象
                DataSet ds = new DataSet();//DataSet对象
                adptr.Fill(ds, "stu");//填充DataSet 并为当前表命名
                DataTableReader rdr = ds.CreateDataReader();
                while (rdr.Read())//读取表中数据
                {
                    for (int i = 0; i < rdr.FieldCount; i++)
                    {
                        Console.Write(rdr.GetName(i) + " " + rdr.GetValue(i) + " ");
                    }
                    Console.WriteLine();
                }
            }

  • 相关阅读:
    【上线复盘】20190329-一个刷新数据的接口是如何导致几十万的订单数据错误
    VS------csc.exe已停止工作解决方法
    SQLServer------存储过程的使用
    SQLServer------聚集索引和非聚集索引的区别
    SQLServer------Sql Server性能优化辅助指标SET STATISTICS TIME ON和SET STATISTICS IO ON
    SQLServer------如何快速插入几万条测试数据
    SQLServer------如何让标识列重新开始计算
    SQLServer------begin tran/commit tran事务的使用方法
    SQLServer------插入数据时出现IDENTITY_INSERT错误
    Spring----Spring Boot Rest的使用方法
  • 原文地址:https://www.cnblogs.com/xixim/p/4617955.html
Copyright © 2011-2022 走看看