SqlDataReader 与SqlDataAdapter+DataSet 的区别

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) + "/t" + rdr.GetValue(i) + "/t"); } Console.WriteLine(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值