不要在类的Finalize方法中对Connection、DataReader或任何其他托管对象调用Close或Dispose。
通过向DataReader传递列的名称或序号引用,可以访问返回行的每一列。
DataReader类可以递增地加载同一查询的结果,并且一次向应用程序提交单个行。
在IntegrationServices中,创建一个包,该包至少具有一项满足一个或多个DataReader目标的数据流任务。
可以指定DataReader目标的超时值,并指示如果发生超时目标是否失败。
在原始DataReader关闭之前,将无法对Connection执行任何命令(包括创建另一个DataReader)。
请记下特定DataReader目标的名称,该目标包含要在报表中使用的结果集。
这个接口为一个工厂定义了使用DataReader类型创建一个域(domain)对象的签名。
当使用ExecuteReader时,在关闭DataReader后才能访问返回值和输出参数。
对报表数据的包要求包括必须使用可提供内存中目标的DataReader目标。
以下代码示例循环访问一个DataReader对象,并从每个行中返回两个列。
通过新增的Load方法,我们可以获得现有的DataReader,并使用它的内容来填充DataTable。
db_datareader固定数据库角色的成员可以对数据库中的任何表或视图运行SELECT语句。
需要具有sysadmin固定服务器角色、db_owner和db_datareader固定数据库角色的成员身份,或者必须是表的所有者。
当代码完成DataReader后,您要在SqlConnection对象停止作用之前关闭SqlConnection。
查询返回DataSet对象,而不是更高性能的DataReader对象。
以下代码示例为DataReader编写架构信息。
DataTables和DataSets新的Load方法可以直接将DataReader流处理到DataTable中。
通过提供定义结果集的SQL语句可以配置DataReader源。
DataReader对象使客户端能够接收只读、只进的数据流。
有关访问SqlDataReader中的数据的更多信息,请参见使用DataReader检索数据。
通过新增的GetTableReader方法,我们可以获得现有的DataTable,并通过DataReader接口和语义来访问它。
由于数据不在内存中缓存,所以在检索大量数据时,DataReader是一种适合的选择。