SqlDataReader 类提供了一种从数据源读取数据记录只进流的方法。如果想使用 OLE DB 接口的数据库或者 SQL Server7.0 之前的版本,请参考文章:使用 OLE DB 检索数据。
 
SqlCommand 调用 ExecuteReader 方法创建 SqlDataReader,不通过直接使用构造器创建。当 SqlDataReader 正在使用时,关联的 SqlConnection 处于对 SqlDataReader 服务挂起状态 。在这个状态下,除非关闭 SqlConnection 的连接,没有其他操作可以执行。在调用 SqlDataReader 的 Close 方法之前,会一直保持这种状态。
 
SqlDataReader 提供一种从 SQL Server 数据源读取数据记录只进流的手段。更多交互操作,例如:Scrolling、Filtering、Navigating、Romoting,等等,请使用 DataSet。 
 
这个例子,创建了到 Northwind 库的 SqlConnection 连接。SqlCommand 从 Employee 表选择数据项,然后利用 SqlCommand 的 ExecuteReader 方法执行查询。命令的结果传递给 SqlDataReader。
 
            SqlDataReader myDataReader = null;

            SqlConnection myConnection = new SqlConnection("server=(local);Integrated Security=SSPI;database=northwind;");
SqlCommand myCommand = new SqlCommand("SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees", myConnection); myConnection.Open();
myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
这个例子,使用 SqlDataReader 的 Read 方法读取数据并且把数据项输出到控制台程序。
 
            while (myDataReader.Read())
{
Console.Write(myDataReader.GetInt32() + "\t");
Console.WriteLine(myDataReader.GetString() + " " + myDataReader.GetString() + "\t");
Console.WriteLine(myDataReader.GetString() + "\t"); if (myDataReader.IsDBNull())
Console.WriteLine("N/A\n");
else
Console.WriteLine(myDataReader.GetInt32() + "\n");
}
最后,这个例子关闭 SqlDataReader,然后是 SqlConnection。
 
            // 当读取完成时,调用 Close 方法
myDataReader.Close(); // 关闭连接
myConnection.Close();
总结
1、SqlDataReader 用于快速地从数据源读取数据记录只进流。
2、请记住,关闭 SqlDataReader,然后是 SqlConnection。
3、请记住,如果 SqlDataReader 正在使用,关联的 SqlConnection 处于对 SqlDataReader 服务挂起状态。在关闭 SqlConnection 连接以前,没有任何与之的操作可以执行。
 

ADO.NET 快速入门(十四):使用 SQL Server 检索数据的更多相关文章

  1. ADO.NET 快速入门(四):从数据库填充 DataSet

    从数据库获取数据很容易,处理数据更容易.如果想要从数据库获取只进.只读的数据流结果集,你可以使用 DataReader 执行命令并且检索它.关于如何使用 DataReader,请参考:使用 OLE D ...

  2. ADO.NET 快速入门(九):使用关系型数据

    DataSet 可以包含非关联表,也可以包含关联表.你可以把 DataSet 想象成一个文档数据.事实上,除了 DataSet 是基于层级模型的,其它和 XML 数据文档是一样的.由于数据通常存储在关 ...

  3. ADO.NET 快速入门(十三):使用 OLE DB 检索数据

    OleDbDataReader 类提供了一种从数据源读取数据记录只进流的方法.如果想使用 SQL Server 7.0 或者更高版本,请参考文章:使用 SQL Server 检索数据.   OleDb ...

  4. ADO.NET 快速入门(一):ADO.NET 概述

    ADO.NET 概述 ADO.NET是改进的ADO数据访问模型用于开发可扩展应用程序.他是专门为可伸缩性.无状态和XML核心的web而设计的.   ADO.NET使用一些ADO对象,如Connecti ...

  5. Scala快速入门(四)——继承、接口

    Scala快速入门(四)--继承.接口 一.继承 1.继承的概念:省略 2.模板: class Person(n:String,a:Int) { var name:String=n var age:I ...

  6. CSS快速入门(四)

    目录 CSS快速入门(四) 浮动 float属性 clear属性 浮动解决的问题及其影响 解决父标签塌陷的方法 浮动案例 定位 什么是脱离文档流 定位的两种方法 position定位 static定位 ...

  7. SQL Server大量数据秒级插入/新增/删除

    原文:SQL Server大量数据秒级插入/新增/删除 1.快速保存,该方法有四个参数,第一个参数为数据库连接,第二个参数为需要保存的DataTable,该参数的TableName属性需要设置为数据库 ...

  8. SQL Server 变更数据捕获(CDC)监控表数据

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现过程(Realization) 补充说明(Addon) 参考文献(References) ...

  9. SQL Server 迁移数据到MySQL

    一.背景 由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据转移到MySQL:由于涉及的表比较多,所以想在MySQL中生成对应 ...

随机推荐

  1. [反汇编练习] 160个CrackMe之010

    [反汇编练习] 160个CrackMe之010. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  2. 01day2

    小明搬家 模拟 [问题描述] 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运 ...

  3. SQL点滴之编辑数据(转)

    数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑. select into 经常遇到一种情况是,我们希望创建一个新表,表中的数据来源于原有的一个表:原有一个表,但是 ...

  4. lightoj 1023

    题意:让你输出前N个大写字母的前K个排列,按字典序,很水,直接dfs. #include<cstdio> #include<string> #include<cstrin ...

  5. Oracle归档方式设置

    一 设置为归档方式Sql代码 sql> archive log list; #查看是不是归档方式 sql> alter system set log_archive_start=true ...

  6. Python 核心数据类型

    1.Python中一切皆对象 2.Python中不需要申明对象类型,对象的类型由运行的表达式决定 3.创建了对象意味着绑定了对象的操作到此对象,也就是在固有的对象上只能调用该对象特有的操作.比如只能将 ...

  7. json字符串转换为JSONObject和JSONArray

    一.下载json 具体到http://www.json.org/上找java-json下载,并把其放到项目源代码中,这样就可以引用其类对象了 二.具体转化过程 //JSONObject String ...

  8. 三、python高级特性(切片、迭代、列表生成器、生成器)

    1.python高级特性 1.1切片 list列表 L=['Mli','add','sal','saoo','Lkkl'] L[0:3]  #即为['Mli','add','sal']  从索引0开始 ...

  9. MATLAB / Simulink on BeagleBone Black

    转自:beagleboard@googlegroups.com邮件组 作者:kevind I have MATLAB / Simulink working with BeagleBone Black. ...

  10. 取消本地SVN文件夹与服务器关联

    问题:之前建了一个SVN代码库,同步了代码上去,但中途发现建库时的规则搞错了,就把服务器上的库给删了重建,然后改变本地代码的svn服务器关联地址,但使用Relocate一直报错. 错误有两种情况:1. ...