博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET中的DataReader简介 (转)
阅读量:2500 次
发布时间:2019-05-11

本文共 4918 字,大约阅读时间需要 16 分钟。

.NET中的DataReader简介 (转)[@more@]

:namespace prefix = o ns = "urn:schemas--com::office" /> 

 

摘要

本文介绍了中的一个重要的DataReader,简单的举例说明了DataReader的使用方法。

 

目录

1. ADO.NET概览

2. DataReader的使用方法

3. 小结

 

1. ADO.NET概览

在说明主题之前,简单的介绍一下ADO.NET。ADO.NET有两个核心:DataSet和.NET data provr,.NET data provider被用来连接,命令以及检索数据集。

.NET 包括 Data Provider(面向Microsoft SQL Server 7.0及以后版本)和OLE .NET Data Provider,SQL Server .NET Data Provider在连接和处理SQL Server数据库时是最高效的,因为它使用了特别针对SQL Server的和处理,在System.Data.Sqlclient名称空间中包含了所有的SQL Server .NET Data Provider类 。OLE DB .NET Data Provider用来支持OLE DB接口。ADO.NET可以提供以下OLE DB Providers:SQLOLEDB - Microsoft OLE DB Provider for SQL Server ; MSDA- Microsoft OLE DB Provider for ; Microsoft.Jet.OLEDB.4.0 - OLE DB Provider for Microsoft Jet。System.Data.Oledbclient名称空间包含了所有的OLE DB .NET Data Provider类 。因此在中要包含你想要的Data Provider的名称空间。

 

使用SQL Server .NET Data Provider时引入的代码:

[Visual Basic]

 

Imports System.Data.SqlClient

 

[]

 

using System.Data.SqlClient;

 

使用OLE DB .NET Data Provider时引入的代码:

[Visual Basic]

 

Imports System.Data.OleDb

 

[C#]

 

using System.Data.OleDb;

 

 

.NET data provider包含4个主要的对象:Connection、Command、DataReader、DataAdapter。

 

Connection类用来建立数据库连接。

如果ProviderSQL Server的话就可以使用如下代码

[Visual Basic]

Dim adoConn As SqlConnection = New SqlConnection("Data =DBServer;initial catalog=Northwind;persist security info=True;user id=sa")

[C#]

SqlConnection adoConn = new SqlConnection("Data source=DBServer;initial catalog=Northwind;persist security info=True;user id=sa");

 

否则ProviderOLE DB的话就可以使用如下代码

[Visual Basic]

Dim adoConn As OleDbConnection = New OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

 

[C#]

OleDbConnection adoConn = new OleDbConnection("Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind ");

 

 

Command类用来执行SQL命令或过程。

 

DataReader类用来从数据库检索一种只读的且指针只能前移的数据流,根据.NET Data Provider的不同,DataReader分为SqlDataReader Class和OleDbDataReader Class两种。

SqlDataReader

[Visual Basic]

Dim sqlMyReader As SqlDataReader = cmdMyCommand.ExecuteReader()

[C#]

SqlDataReader sqlMyReader = cmdMyCommand.ExecuteReader();

OleDbDataReader

[Visual Basic]

Dim oleMyReader As OleDbDataReader = cmdMyCommand.ExecuteReader()

 

[C#]

OleDbDataReader oleMyReader = cmdMyCommand.ExecuteReader();

 

DataAdapter类用来填充Dataset和数据源。

 

2. DataReader的使用方法

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

ectratio="t">

UPLOADpicture/20021298544865039.jpg" align=baseline border=0>

 

在创建了一个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 = " 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)))

  L

 

  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代码。

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-976171/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-976171/

你可能感兴趣的文章
XML 文档(1, 2)中有错误:不应有 <xml xmlns=''>
查看>>
10.异常
查看>>
oracle分区表备份恢复
查看>>
redis性能监控(一): Redis Info 命令 - 获取 Redis 服务器的各种信息和统计数值
查看>>
通过Gradle来下载依赖的jar包
查看>>
Java基础04 封装与接口
查看>>
题目1438:最小公倍数
查看>>
20175223 姚明宇 MyCP
查看>>
路由器漏洞挖掘之栈溢出 - 反弹shell的payload构造
查看>>
断点续传下载原理实现
查看>>
zend studio 常用快捷键
查看>>
并发和多线程(七)--volatile
查看>>
Spring整合hibernate4:事务管理
查看>>
Linux grep return code
查看>>
Android——Android Bundle类(转)
查看>>
Bottle开发者中文文档(2)——快速开始“hello world!”
查看>>
【BZOJ5319】【JSOI2018】—军训列队(主席树)
查看>>
在asp.net 使用Ueditor
查看>>
【转】python导出依赖库
查看>>
渗透实战(周四):CSRF跨站域请求伪造
查看>>