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. C# -Asp.Net.SignalR.Core之Hub

    前言 程序员的进步是需要环境的,良好的团队环境,良好的开发环境,会让人进步的更加快速. 所以,我认为,如果一个程序员,在2019年还在用Visual Studio 2005开发,那么,他,大概率,不会 ...

  2. DRUID连接池配置详情

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  3. 使用CSS3的clip-path(裁剪路径)实现剪贴区域的显示以及实例实现图片渐变

    clip-path介绍 clip-path 直译过来就是裁剪路径,使用SVG或形状定义一个HTML元素的可见区域的方法.想象一下你在Photoshop中勾勒路径的场景.MDN上是这样介绍 clip-p ...

  4. QT读取xml配置文件

    //获取字符串字段 QString ConfigHelper::GetStringConfigValue(QString str) { if(str == "InitDeviceNo&quo ...

  5. Windows Server 2016-Hyper-V HNV 新增功能

    本内容主要介绍了Hyper-V 网络虚拟化 (HNV) 功能在 Windows Server 2016 中的新增或更改内容,具体信息如下: HNV更新 功能中的功能 新的或改进 描述 可编程 Hype ...

  6. Python初识+条件语句+循环语句

    一.写照: 1.第一个程序 hello world print('hello world') 后缀名可以是任意(只是现在)(lx.py lx.ps) 导入模块时不是.py 就会出错 2.解释器路径 # ...

  7. Unity User Group深圳站——Timeline & Cinemachine分享

    报名说明:UUG深圳站,2月分享活动正式启动,1月29日中午12:00前报名可获赠Unity精美纪念礼物一份~ 关于Unity Unity 是一款多平台的综合型游戏开发工具,它的出现对蓬勃发展的全球游 ...

  8. pycharm配置运行django项目步骤

    1:在django项目的跟目录下执行:这是直接在Linux系统中直接运行 python manage.py runserver 0:8000 然后在浏览器中输入IP端口即可访问 pycharm配置运行 ...

  9. 第3章 简单的C程序设计——顺序程序设计

    3.1 顺序程序设计举例 例:有人用温度计测量出用华氏法表示的温度(如64F),今要求把它转换为一摄氏法表示的温度(如17.8C) 解题思路:问题的关键在于找到两者的转换公式.根据物理学知识,公式为c ...

  10. Java服务使用Redis实现分布式全局唯一标识

    此处以SpringBoot为例,示范如何使用Redis构造全局唯一标识. 1. RedisTemplate配置 spring.redis.database = 0 spring.redis.host ...