SqlDataReader

提供一種從 SQL Server 資料庫讀取行的只進流的方式。 此類是繼承:public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord

基本信息

命名空間:System.Data.SqlClient

程式集:System.Data(在 system.data.dll 中)

語法

C#

public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord

備註

若要創建 SqlDataReader,必須調用 SqlCommand 對象的 ExecuteReader 方法,而不要直接使用構造函式。

在使用 SqlDataReader 時,關聯的 SqlConnection 正忙於為 SqlDataReader 服務,對 SqlConnection 無法執行任何其他操作,只能將其關閉。除非調用 SqlDataReader 的 Close 方法,否則會一直處於此狀態。例如,在調用 Close 之前,無法檢索輸出參數。

SqlDataReader 的用戶可能會看到在讀取數據時另一進程或執行緒對結果集所做的更改。但是,確切的行為與執行時間有關。

SqlDataReader 關閉後,只能調用 IsClosed 和 RecordsAffected 屬性。儘管當 SqlDataReader 存在時可以訪問 RecordsAffected 屬性,但是請始終在返回 RecordsAffected 的值之前調用 Close,以保證返回精確的值。

示例

C#

privatestaticvoid ReadOrderData(string connectionString)

{

string queryString =

"SELECT OrderID, CustomerID FROM dbo.Orders;";

using (SqlConnection connection =

new SqlConnection(connectionString))

{

SqlCommand command =

new SqlCommand(queryString, connection);

connection.Open();

SqlDataReader reader = command.ExecuteReader();

// Call Read before accessing data.

while (reader.Read())

{

Console.WriteLine(String.Format("{0}, {1}",

reader[0], reader[1]));

}

// Call Close when done reading.

reader.Close();

}

}

繼承層次結構

System.Object

System.MarshalByRefObject

System.Data.Common.DbDataReader

System.Data.SqlClient.SqlDataReader

為了獲得最佳性能, SqlDataReader 會避免創建不必要的對象或複製不必要的數據。因此,對 GetValue 等方法的多次調用將返回對相同對象的引用。如果正在修改由 GetValue 等方法返回的對象的基礎值,請使用警告。 C#

相關詞條

相關搜尋

熱門詞條

聯絡我們