DbDataReader类型(实现IDataReader接口)是从数据源获取信息最简单也最快速的方法。

数据读取器是只读向前的效据流.井且一次返回一条记录。因此.只有当你向数据源提交 Select 查询语句的时候,数据读取器才有用。当你需要快速获取大批数据并且不需要在内存中存储它们的时候,数据读取器就非常有用了。比如.你想从表中取出2000条记录保存到文本文件.先用Dataset保存这些数据到内存中就非常不值得了(因为 Dataset同时在内存中保存整个结果)。

一个更好的方式是用数据读取器快速遍历每条记录。需要知道的是.数据读取器对象(不像数据适配器对象.后面会讨论它)会保持打开的连接.除非显式地关闭会话。

通过执行命令对象的 ExecuteReader()方法来获得数据读取器对象。数据读取器(DataReader)表示从数据库中读取的当前记录。它包含一个索引器方法 (如 C#中的[]语法),可以通过名称或从 0 开始的整数来访问当前记录中的列。

使用数据读取时获取单个结果集

            using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = @"Data Source=CLPDXX0076\SQLEXPRESS;" + "Integrated Security=SSPI;Initial Catalog=CarSYS";
cn.Open();
string sql = "select * from Person";
SqlCommand cmd = new SqlCommand(sql, cn);
using (SqlDataReader sr = cmd.ExecuteReader())
{
while (sr.Read())
{
//Console.WriteLine("ID:{0},Name:{1},Age:{2}", sr["ID"],sr["Name"],sr["Age"]); for (int i = ; i < sr.FieldCount; i++)
{
Console.WriteLine("{0}={1}", sr.GetName(i), sr.GetValue(i).ToString());
}
}
}
}

 使用数据读取时获取多个结果集

            using (SqlConnection cn = new SqlConnection())
{
cn.ConnectionString = @"Data Source=服务器名;" + "Integrated Security=SSPI;Initial Catalog=数据库名";
cn.Open();
string sql = "select * from Person;select * from Product";
SqlCommand cmd = new SqlCommand(sql, cn);
using (SqlDataReader sr = cmd.ExecuteReader())
{
do
{
while (sr.Read())
{
for (int i = ; i < sr.FieldCount; i++)
{
Console.WriteLine("{0}={1}", sr.GetName(i), sr.GetValue(i).ToString());
}
Console.WriteLine();
} } while (sr.NextResult());
}
}

如何在ADO中使用数据读取器(DataReader)读取数据的更多相关文章

  1. ADO.Net读取器获取数据库数据

    string str = Configuration.ConfigurationManager.AppSettings[str].ToString(); string sql = "sele ...

  2. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...

  3. 如何在Elasticsearch中安装中文分词器(IK)和拼音分词器?

    声明:我使用的Elasticsearch的版本是5.4.0,安装分词器前请先安装maven 一:安装maven https://github.com/apache/maven 说明: 安装maven需 ...

  4. 前端技术之:如何在Vue中使用clipboard.js复制服务端数据

    第一步 创建点击对象页面元素,并绑定业务数据. <el-button type="text" size="mini" class="copy-b ...

  5. 如何在elasticsearch中查看Logstash打到elasticsearch的数据

    # cat syslog02.conf #filename:syslog02.conf #注意这个是要用#号注释掉 input{ file{ path => ["/var/log/*. ...

  6. 简述在ADO中使用接口的抽象数据提供程序以及ADO.NET数据提供程序工厂模型

    如何在ADO中使用接口的抽象数据提供程序 在cofig中 appSettings下,配置数据连接类型 <appSettings> <!--这个键值映射到枚举值中的某个值--> ...

  7. C#与数据库访问技术总结(十一)之数据阅读器(DataReader)1

    数据阅读器 当执行返回结果集的命令时,需要一个方法从结果集中提取数据. 处理结果集的方法有两个: 第一,使用数据阅读器(DataReader): 第二,同时使用数据适配器(Data Adapter)和 ...

  8. (第二章第四部分)TensorFlow框架之TFRecords数据的存储与读取

    系列博客链接: (第二章第一部分)TensorFlow框架之文件读取流程:https://www.cnblogs.com/kongweisi/p/11050302.html (第二章第二部分)Tens ...

  9. 028 Partitioner:数据分区器

    Partitioner:数据分区器,决定数据到下一个RDD的时候在那一个分区 HashPartitioner:根据key的hashCode值来实现 RangePartitioner: 根据key所属范 ...

随机推荐

  1. Charles 连接手机抓包出现Unknown,一直无法抓包的问题解决

    mac电脑安装了charles并且确保已经安装成功,https抓包需要安装的相关的证书已经安装,并且手机浏览器中输入chls.pro/ssl已经将证书下载完成,但是手机与电脑相连通过点击手机应用还是无 ...

  2. 函数strlen()和sizeof的区别

    函数strlen()和sizeof的区别: #include<stdio.h> #include<stdlib.h> #include<string.h> #def ...

  3. CART决策树和随机森林

    CART 分裂规则 将现有节点的数据分裂成两个子集,计算每个子集的gini index 子集的Gini index: \(gini_{child}=\sum_{i=1}^K p_{ti} \sum_{ ...

  4. 带着新人看java虚拟机02

    上一节是把大概的流程给过了一遍,但是还有很多地方没有说到,后续的慢慢会涉及到,敬请期待! 这次我们说说垃圾收集器,又名gc,顾名思义,就是收集垃圾的容器,那什么是垃圾呢?在我们这里指的就是堆中那些没人 ...

  5. 讲解:为什么重写equals时必须重写hashCode方法

    一 :string类型的==和equals的区别: 结论:"=="是判断两个字符串的内存地址是否相等,equals是比较两个字符串的值是否相等,具体就不做扩展了,有兴趣的同学可以去 ...

  6. Asp.Net Core 轻松学-经常使用异步的你,可能需要看看这个文章

    前言 事情的起因是由于一段简单的数据库连接代码引起,这段代码从语法上看,是没有任何问题:但是就是莫名其妙的报错了,这段代码极其简单,就是打开数据库连接,读取一条记录,然后立即更新到数据库中.但是,惨痛 ...

  7. DateUtil日期工具类

    目录 (1)需要导入的包 (2)DateUtil类 (1)需要导入的包 主要用于Strings.isNullOrEmpty(date) <!--string处理类--> <depen ...

  8. 解决ruby安装后无法添加淘宝gem源------------学习记录

    使用sass ,需要安装ruby,会建议移除gem源,添加淘宝的gem源,但是淘宝的镜像源已经停止维护啦!!用https://gems.ruby-china.com 代替即可. 操作如下: 1)删除原 ...

  9. Mac OS X中开启或关闭显示隐藏文件命令

    前言:之前一直用的都是 windows 系统的电脑,刚接触 Mac ,很多功能都不熟悉,写下博客记录一下,以防以后忘记,也给后来者提供方便. 命令行方式:显示隐藏文件: defaults write ...

  10. MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo

    打开数据库时报错,提示应用程序组件中发生了无法处理的异常.如果单击“继续”,应用程序将忽略此错误并尝试继续. 针对此类问题的解决办法是:将路径C:\Documentsand Settings\Admi ...