首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 使用 SqlDataReader 高效讀取資料庫資料

     編輯:關於ASP.NET

SqlDataReader 是 ADO.NET 中用於從 SQL Server 以「向前、唯讀」方式快速讀取資料流的核心類別。相較於 DataSet,它犧牲了排序、分頁等豐富功能,換取極佳的效能與低記憶體占用,常被稱為「火管游標」。對應其他資料來源,亦有 OleDbDataReader(Oracle、Access)與 OdbcDataReader(ODBC 來源)可用。

主要屬性

屬性型別說明
Depthint目前資料列的巢狀深度
FieldCountint目前資料列的欄位數
IsClosedbool資料閱讀器是否已關閉
RecordsAffectedint執行 INSERT/UPDATE/DELETE 影響的列數

常用方法

方法回傳型別說明
Read()bool前移到下一列並讀取,若無資料回傳 false
GetValue(int)object取得指定欄位的值
GetValues(object[])int將目前列所有欄位值複製到陣列,回傳複製數量
NextResult()bool移至下一個結果集(多重結果集時使用)
Close()void關閉 DataReader,釋放連接
GetInt32、GetDateTime 等強型別直接以對應型別取值,型別不符會拋出 InvalidCastException

程式碼範例:使用 ExecuteReader 執行查詢

using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand("SELECT Id, Name FROM Products", conn))
{
    conn.Open();
    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            int id = reader.GetInt32(0);
            string name = reader.GetString(1);
            // 處理資料...
        }
    }
}

提醒:DataReader 佔用連接期間連接保持開啟,務必在 using 區塊或 finally 中確實呼叫 Close(),避免連線洩漏。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved