|
SqlDataReader 類
提供一種從 SQL Server 數(shù)據(jù)庫讀取行的只進(jìn)流的方式。無法繼承此類。 命名空間:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中) 語法:
public class SqlDataReader : DbDataReader, IDataReader, IDisposable, IDataRecord
備注
在使用 SqlDataReader 時(shí),關(guān)聯(lián)的 SqlConnection 正忙于為 SqlDataReader 服務(wù),
對 SqlConnection 無法執(zhí)行任何其他操作,只能將其關(guān)閉。除非調(diào)用 SqlDataReader 的 Close 方法,否則會(huì)一直處于此狀態(tài)。例如,在調(diào)用 Close 之前,無法檢索輸出參數(shù)。
SqlDataReader 的用戶可能會(huì)看到在讀取數(shù)據(jù)時(shí)另一進(jìn)程或線程對結(jié)果集所做的
更改。但是,確切的行為與執(zhí)行時(shí)間有關(guān)。 當(dāng) SqlDataReader 關(guān)閉后,只能調(diào)用 IsClosed 和 RecordsAffected 屬性。盡管當(dāng)
SqlDataReader 存在時(shí)可以訪問 RecordsAffected 屬性,但是請始終在返回 RecordsAffected 的值之前調(diào)用 Close,以保證返回精確的值。
示例
下面的示例創(chuàng)建一個(gè) SqlConnection、一個(gè) SqlCommand 和一個(gè) SqlDataReader。
該示例讀取全部數(shù)據(jù),并將這些數(shù)據(jù)寫到控制臺(tái)窗口。隨后此代碼關(guān)閉 SqlDataReader。 SqlConnection 在 using 代碼塊的結(jié)尾處自動(dòng)關(guān)閉。
private static void 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(); } } |
|
|