ADO.NET中的DataReader简介

 
2. DataReader的使用方法
 
DataReader是我要着重描述的部分,因为使用DataReader可以提高应用程序的性能,是将数据输出到表示层重要的手段。以DataReader为主的数据访问关系可以用下图表示:


在创建了一个Command对象之后,通过调用Command.ExecuteReader方法再创建DataReader对象,就能够使用Read方法从数据源检索记录集了。最后,需要着重指出的是在使用完DataReader后应该显式的关闭DataReader对象。下面的代码是使用SqlDataReader的样例,从罗思文数据库中进行简单数据查询。
 

Imports System Imports System.Data Imports System.Data.SqlClient Imports Microsoft.VisualBasic Public Class DataReaderSample Public Shared Sub Main() Dim sqlConn As SqlConnection = New SqlConnection

("data source=DBServer;initial catalog=Northwind; persist security info=True;user id=sa") Dim sqlCmd As SqlCommand = sqlConn.CreateCommand() sqlCmd.CommandText = "SELECT EmployeeID, LastName , FirstName FROM Employees" sqlConn.Open() Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader() Dim intFor As Int32 For intFor = 0 To sqlReader.FieldCount - 1 Console.Write(String.Format("{0,-20:G}", sqlReader.GetName(intFor))) Next Console.WriteLine() Do While sqlReader.Read() Console.WriteLine(String.Format("{0,-20:G}{1,-20:G}{2,-20:G}",

sqlReader.GetInt32(0), sqlReader.GetString(1), sqlReader.GetString(2))) Loop sqlReader.Close() sqlConn.Close() Console.Read() End Sub End Class

 
图表1:SqlReader执行的检索结果
 
同样的也可以让Command对象执行SQL批,从而检索多个记录集,此时调用DataReader的NextResult方法读取下一个SQL批产生的数据。
 

Imports System Imports System.Data Imports System.Data.SqlClient Imports Microsoft.VisualBasic Public Class DataReaderSample Public Shared Sub Main() Dim sqlConn As SqlConnection = New SqlConnection

("data source= DBServer;initial catalog=Northwind; persist security info=True;user id=sa") Dim sqlCmd As SqlCommand = sqlConn.CreateCommand() sqlCmd.CommandText = "SELECT EmployeeID, LastName ,

FirstName FROM Employees;SELECT CategoryID, CategoryName, Description FROM Categories" sqlConn.Open() Dim sqlReader As SqlDataReader = sqlCmd.ExecuteReader() Dim intFor As Int32 Dim blnNextResult As Boolean = False Do While Not blnNextResult For intFor = 0 To sqlReader.FieldCount - 1 Console.Write(String.Format("{0,-20:G}", sqlReader.GetName(intFor))) Next Console.WriteLine() Do While sqlReader.Read() Console.WriteLine(String.Format("{0,-20:G}{1,-20:G}{2,-20:G}", sqlReader.GetInt32(0), sqlReader.GetString(1),

sqlReader.GetString(2))) Loop Console.WriteLine() blnNextResult = Not sqlReader.NextResult() Loop sqlReader.Close() sqlConn.Close() Console.Read() End Sub End Class

 

图表2:SqlReader的SQL批执行的检索结果
 
3. 小结
 
这篇文字是面向初学者的,我想通过阅读它,让喜爱.NET的入门人士都会对ADO.NET和其中的DataReader有个大致的了解,并成功的编写出.NET代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值