基本信息
命名空間:System.Data.SqlClient
程式集:System.Data(在 system.data.dll 中)
public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord
備註
在使用
SqlDataReader 時,關聯的
SqlConnection 正忙於為
SqlDataReader 服務,對
SqlConnection 無法執行任何其他操作,只能將其關閉。除非調用
SqlDataReader 的 Close 方法,否則會一直處於此狀態。例如,在調用
Close 之前,無法檢索輸出參數。
SqlDataReader 的用戶可能會看到在讀取數據時另一進程或
執行緒對
結果集所做的更改。但是,確切的行為與執行時間有關。
當 SqlDataReader 關閉後,只能調用 IsClosed 和 RecordsAffected 屬性。儘管當 SqlDataReader 存在時可以訪問 RecordsAffected 屬性,但是請始終在返回 RecordsAffected 的值之前調用 Close,以保證返回精確的值。
示例
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# |