2024年3月21日发(作者:)
C# DataReader读取数据库
中的DataReader可以从数据库中检索只读、只进的数据流。查询结
果在查询执行时返回,并存储在客户端的网络缓冲区中,直到用户使用DataReader
的Read方法对它们发出请求。使用DataReader可以提高应用程序的性能,原因是
它只要数据可用就立即检索数据,并且(默认情况下)一次只在内存中存储一行,
减少了系统开销。
随.NET Framework提供的每个.NET Framework数据提供程序包括一个
DataReader对象:OLE Framework数据提供程序包括一个OleDbDataReader
对象,SQL Server .NET Framework数据提供程序包括一个SqlDataReader对象、
Framework数据提供程序包括一个OdbcDataReader对象,
Framework数据提供程序包括一个OracleDataReader对象。这些对象有一些公共的
方法和属性,如表11-6、11-7所示。
表11-6 公共方法
方法
Close
Dispose
GetName
IsDBNull
NextResult
Read
GetXXX
说明
该方法用于关闭当前DataReader对象
该方法用于释放有DbDataReader占用的资源。从DbDataReader继承
该方法用于获取指定列的名称
该方法用于获取一个值,这个值用于指示列中是否包含不存在的缺少的值
当读取批处理Transact-SQL语句的结果时,使数据读取器前进到下一个结果
该方法用于推进到下一行,如果还有其他行,则返回True;如果已经到达结果集的
末尾,则返回False
该方法用于获取指定列的XXX形式的值,这里的XXX可以是String、Int32、Double
等各种数据类型,例如GetString、GetInt32等
表11-7 公共属性
属性
Depth
FieldCount
HasRows
IsClosed
Item
RecordsAffected
说明
该属性用于获取一个值,该值用于指示当前行的嵌套深度
该属性用于获取当前行中的列数
该属性用于获取一个值,该值指示SqlDataReader是否包含一行或多行
该属性用于检索一个布尔值,该值指示是否已关闭指定的DataReader实例
该属性用于获取已本机格式表示的列的值
该属性用于获取执行Transact-SQL语句所更改、插入或删除的行数
VisibleFieldCount 该属性用于获取DataReader中未隐藏的字段的数目
下面是一个使用DataReader读取数据库并输入数据内容的实例,代码如下所
示。
(1)打开Microsoft Visual Studio 2010。在菜单栏中,执行【文件】|【新建项
目】命令,打开【新建项目】对话框。
(2)在【新建项目】窗口中,选择“控制台应用程序”并在名称栏中输入项
目的名称为“ConsoleApplication1”。然后,单击【确定】按钮。
(3)在控制台应用程序中,添加数据库连接读取数据表内容并输出,代码如
下所示。
using System;
using c;
using ;
using ;
using ent;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string strSqlConnect = @"Data Source=(local)SQLEXPRESS;Initial
Catalog=book;Integrated Security=True";
SqlConnection con = new SqlConnection(strSqlConnect);
();//打开数据库
SqlCommand cmd = new SqlCommand("select * from book1", con);
SqlDataReader dr = eReader();
ine("图书信息如下:" );
while (())
{
ine("--------------------------------");
ine("书名:" + dr["name"].ToString());
ine("作者:" + dr["author"].ToString());
}
}
}
}
(4)在上述代码中,使用DataReader对象的Read方法判断DataReader对象
中的数据是否还有下一行,并将游标下移到下一行。通过Read方法可以遍历读取
数据库中行的信息,当读取到一行时,需要获取某列的值只需要使用“[”和“]”
运算符来确定某一列的值即可。按下【Ctrl+S】键保存源代码,然后执行菜单栏中
的【调试】命令或者按下【Ctrl+F5】键查看运行结果,如图11-9所示。
图11-9 执行结果


发布评论