使用DataReader

string sqlStr="select * from tb_news";

SqlCommand myCmd=new SqlCommand(sqlStr,myConn);

myCmd.CommandType=CommandType.Text;

SqlDataReader myDr=myCmd.ExecuteReader();

过程:

创建连接

打开连接

创建Command对象

执行Command的ExecuteReader方法

将DataReader绑定到数据控件中.

关闭DataReader.

关闭连接

时间: 2024-09-30 03:41:40

使用DataReader的相关文章

【2016-11-2】【坚持学习】【Day17】【通过反射自动将datareader转为实体info】

通过ADO.net 查询到数据库的数据后,通过DataReader转为对象Info public class BaseInfo { /// <summary> /// 填充实体 /// </summary> /// <param name="dr"></param> public virtual void Fill(DataRow dr) { PropertyInfo[] ps = this.GetType().GetProperties

There is already an open DataReader associated with this Command which must be closed first.

解决"There is already an open DataReader associated with this Command which must be closed first." exception in EF 中 当我开启惰性加载情况下,系统会报此异常信息,出现此异常是发生于Sql server 2005. 解决方法:在数据库连接字符串中添加MARS信息为true <add name="CRGDatabase" connectionString

DataReader对象(数据读取)

DataReader对象提供了一个只进只读的数据读取器,用于从查询结果中读取数据,它每次仅能读取一行数据. [常用属性]: FieldCount:获取当前行的列数: HasRows:表明查询结果中是否还存在未被读取的数据. [常用方法]: Close:关闭SqlDataReader对象: GetName:获取指定列的名称; Read:使SqlDataReader前进到下一条记录. [使用DataReader对象对数据库进行查询操作步骤]: 1.创建Connection对象: 2.打开数据库连接:

已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。

多次用到SqlDataReader 要先关闭,再执行ExecuteNonQuery操作 每用一次需要先进行关闭,再执行新的一次,要不然就会报错“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭.” 那么如何解决呢? 方法有两种1,在ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后的版本2.选择读出SqlDataReader 中的数据给List或者arraylist之类的,之后进行关闭返回

使用DataReader读取数据

List<User> allUsers = new List<User>(); SqlConnection conn = new SqlConnection(连接字符串); SqlCommand cmd = new SqlCommand("SELECT语句",conn); conn.Open(); using(SqlDataReader rdr = cmd.ExecuteReader()){ while(rdr.Read()) { User u = new Us

【转】已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭

在运用Linq to sql 或者 linq to entity等相关linq技术进行数据库访问操作时,如果发生上述异常是因为是因为.NET內部是使用DataReader作数据存取,DataReader用同一个Connection. 解决办法有两个: 1,设定ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后的版本2.先读出放置在List中 例如将 var preObj = (from a in db.ArticleEA

DataReader 和 DataSet 的区别

摘自:http://www.cnblogs.com/zhjjNo1/archive/2009/08/26/1554420.html 第一种解释 DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection(俗称:非断开式连接),在线操作数据库时,任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的.由于DataReader的特殊性和高性能,所以Dat

DataReader和DataSet的区别

使用DataSet是为了实现应用程序的下述功能: 1 操作结果中的多个分离的表.    2 操作来自多个源(例如来自多个数据库.XML文件和电子表格的混合数据)的数据.    3 在层之间交换数据或使用XML Web服务.与DataReader 不同,DataSet能被传递到远程客户端.    4 通过缓冲重复使用相同的行集合以提高性能(例如排序.搜索或过滤数据).    5 每行执行大量的处理.在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长,从而降低效率.   

大数据导致DataReader.Close超时的异常

公司一个数据抓取的程序,数据量极大,读取数据的用IDataReader的Read方法来进行数据处理,在测试的时候我想跑一部分数据后跳出循环,即break; 然后关闭datareader,但是在执行datareader.close()方法的时候出现了“超时异常”的错误, 查看了一下MSDN对Close方法的说明的备注 如下: 当使用 SqlDataReader 将关联的 SqlConnection 用于任何其他用途时,必须显式调用 Close 方法. Close 方法填写输出参数的值.返回值和 R

SqlHelper类编写前奏:DataReader关闭链接出现问题

SqlHelper是一个执行数据库操作的助手类,但是当我们没学过DataSet之前,要想使用using搭配SqlConnection和SqlCommand写出一个真正独立的SqlHelper都是不太可能的. 比如:一个常规的ExecuteReader方法如果使用上述做法,代码如下: using System.Data.SqlClient; namespace ExecuteScalar.libs { class SqlHelper { public static SqlDataReader Ex