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();
                }
            }

  • 相关阅读:
    Azure PowerShell (7) 使用CSV文件批量设置Virtual Machine Endpoint
    Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台
    Azure China (7) 使用WebMetrix将Web Site发布至Azure China
    Microsoft Azure News(4) Azure新D系列虚拟机上线
    Windows Azure Cloud Service (38) 微软IaaS与PaaS比较
    Windows Azure Cloud Service (37) 浅谈Cloud Service
    Azure PowerShell (6) 设置单个Virtual Machine Endpoint
    Azure PowerShell (5) 使用Azure PowerShell创建简单的Azure虚拟机和Linux虚拟机
    功能代码(1)---通过Jquery来处理复选框
    案例1.用Ajax实现用户名的校验
  • 原文地址:https://www.cnblogs.com/xixim/p/4617955.html
Copyright © 2011-2022 走看看