熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#高級編程:數據讀取器[1]

2013-11-13 12:12:29  來源: .NET編程 
    ——此文章摘自《C#高級編程(第版)》定價元 特價元 購買

    據讀取器(data reader)是從一個數據源中選擇某些數據的最簡單快捷的方法但這也是功能最弱的一個方法不能直接實例化數據閱讀器即實例是調用ExecuteReader()方法後從相應數據庫的命令對象中返回的

    下面的代碼說明了如何從Northwind數據庫的Customer表中選擇數據這個示例連接了數據庫選擇許多記錄循環所選的記錄並把它們輸出到控制台上

    這個示例使用OLE DB提供程序作為一個來自SQL提供程序的簡要的數據暫存器在大多數情況下OleDbClient類與SqlClient類是一對一的關系例如OleDbConnection對象就類似於在前面的示例中所使用的SqlConnection對象

    要對OLE DB數據源執行命令應使用OleDbCommand類下面的代碼執行一個簡單的SQL語句讀取記錄返回一個OleDbDataReader對象

    注意下面的第二個using語句使OleDb類可用
    using System;
    using SystemDataOleDb;

    目前所利用的所有數據提供程序都在同一個DLL中所以只需要引用SystemDatadll程序集就可以導入本節使用的所有類
    public class DataReaderExample
    {
       public static void Main(string[] args)
       {
          string source = Provider=SQLOLEDB; +
                       server=(local)\\NetSDK; +
                       integrated security=SSPI; +
                       database=northwind;
          string select = SELECT ContactNameCompanyName FROM Customers;
          OleDbConnection conn = new OleDbConnection(source);
          connOpen();
          OleDbCommand cmd = new OleDbCommand(select conn);
          OleDbDataReader aReader = cmdExecuteReader();
          while(aReaderRead())
             ConsoleWriteLine({} from {}
                               aReaderGetString() aReaderGetString());
          aReaderClose();
          connClose();
       }
    }

    前面的代碼包含其他章節介紹的許多熟悉的C#功能要編譯該示例使用下面的命令
    csc /t:exe /debug+ DataReaderExamplecs /r:SystemDatadll

    在前面的示例中下面的代碼根據源連接字符串創建一個新OLE DBNET數據庫連接
       OleDbConnection conn = new OleDbConnection(source);
       connOpen();
       OleDbCommand cmd = new OleDbCommand(select conn);

    第三行根據特定的Select語句創建一個新OleDbCommand對象以及執行命令時所使用的數據庫連接當有一個有效的命令時就需要執行它返回一個初始化了的OleDbDataReader
    OleDbDataReader aReader = cmdExecuteReader();

    OleDbDataReader是一個只向前的連接游標即只能沿著一個方向遍歷記錄而使用的數據庫連接一直打開直到關閉DataReader為止

    提示OleDbDataReader會使數據庫連接一直處於打開狀態直到顯式關閉為止

    OleDbDataReader類不能直接實例化它總是通過OleDbCommand類的ExecuteReader方法調用而返回打開了一個數據讀取器後就可以用各種方式訪問包含在該讀取器中的數據

    關閉OleDbDataReader對象(顯式調用Close()或通過垃圾收集器收集對象)時底層的連接也會關閉這取決於調用了哪個ExecuteReader()方法如果調用了ExecuteReader()方法並傳遞了CommandBehaviorCloseConnection就會在關閉讀取器的時候關閉連接

    OleDbDataReader類有一個索引器可以使用常見的數組語法訪問任何字段(但不是類型安全的訪問)
       object o = aReader[];
       object o = aReader[CategoryID];

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15406.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.