SqlCommand.ExecuteReader() 方法
將 CommandText 發(fā)送到 Connection 并生成一個 SqlDataReader。 命名空間:System.Data.SqlClient
程序集:System.Data(在 system.data.dll 中) 語法:
public SqlDataReader ExecuteReader ()
返回值一個 SqlDataReader 對象。
異常
備注
當 CommandType 屬性設置為 StoredProcedure 時,CommandText 屬性應設置為
存儲過程的名稱。當調用 ExecuteReader 時,該命令將執(zhí)行此存儲過程。 如果使用 SQL Server 2005 之前的 SQL Server 版本,在使用 SqlDataReader 時,
關聯的 SqlConnection 將忙于為 SqlDataReader 服務。當處于此狀態(tài)時,除了關閉 SqlConnection 外,不能對其執(zhí)行其他任何操作。除非調用 SqlDataReader 的
Close 方法,否則會一直處于此狀態(tài)。從 SQL Server 2005 開始,多活動結果
集 (MARS) 功能允許多個操作使用同一連接。
如果您使用 ExecuteReader 或 BeginExecuteReader 訪問 XML 數據,
SQL Server 將以多行(每行 2,033 個字符)方式返回長度大于 2,033 個字符的所有 XML 結果。若要避免發(fā)生此行為,請使用 ExecuteXmlReader 或 BeginExecuteXmlReader
讀取 FOR XML 查詢。有關更多信息,請參見位于
http://support.microsoft.com/default.aspx?ln=zh-cn. 上的 Microsoft 知識庫中的
文章 Q310378“PRB: XML Data Is Truncated When You Use SqlDataReader”(PRB:使
用 SqlDataReader 時 XML 數據被截斷)。
示例
下面的示例創(chuàng)建一個 SqlCommand,然后通過傳遞兩個字符串來執(zhí)行它,其中一
個字符串是 Transact-SQL SELECT 語句,另一個字符串用于連接至數據源。 private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { connection.Open(); SqlCommand command = new SqlCommand(queryString, connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { Console.WriteLine(String.Format("{0}", reader[0])); } } } |
|
來自: 寒木蕭條 > 《SqlServer》