天天看點

ADO.NET中的DataReader簡介

  2. DataReader的使用方法   DataReader是我要着重描述的部分,因為使用DataReader可以提高應用程式的性能,是将資料輸出到表示層重要的手段。以DataReader為主的資料通路關系可以用下圖表示:

ADO.NET中的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
      
ADO.NET中的DataReader簡介

圖表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
      
ADO.NET中的DataReader簡介

圖表2:SqlReader的SQL批執行的檢索結果   3. 小結   這篇文字是面向初學者的,我想通過閱讀它,讓喜愛.NET的入門人士都會對ADO.NET和其中的DataReader有個大緻的了解,并成功的編寫出.NET代碼。 引: http://developer.51cto.com/art/200612/36781_1.htm