使用ADO.NET怎樣從SQL Server 中檢索資料
來源:互聯網
上載者:User
ado|server|資料 此樣本闡釋如何使用 SqlDataReader 類從 SQL Server 讀取資料。此類提供了一種從資料來源讀取只進資料記錄流的方法。如果要使用具有 OLE DB 介面或 SQL Server 7.0 以前的 SQL Server 版本的資料庫,請參閱從 OLE DB 檢索資料。 SqlDataReader 是通過調用 SqlCommand 的 ExecuteReader 方法來建立的,而不是通過直接使用建構函式建立的。當 SqlDataReader 在使用中時,相關聯的 SqlConnection 將忙於為 SqlDataReader 提供服務。在這種情況下,除了關閉 SqlConnection 之外,無法在 SqlConnection 上執行任何其他動作。在調用 SqlDataReader 的 Close 方法之前,這種情況一直存在。 SqlDataReader 提供一種從 SQL Server 資料來源讀取只進資料記錄流的方法。要進行互動性更強的操作,如滾動、篩選、定位、遠端等,請使用資料集。 此樣本建立到 Northwind 資料庫的 SqlConnection。然後使用 SqlCommand ExecuteReader 方法執行從僱員 (Employee) 表中選擇項的 SqlCommand。此命令的結果將傳遞給 SqlDataReader。 C# : SqlDataReader myDataReader = null; SqlConnection mySqlConnection = new SqlConnection("server=(local)\VSdotNET;Trusted_Connection=yes;database=northwind"); SqlCommand mySqlCommand = new SqlCommand("SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees", mySqlConnection); ... mySqlConnection.Open(); myDataReader = mySqlCommand.ExecuteReader(CommandBehavior.CloseConnection); 此樣本使用 SqlDataReader Read 方法讀取全部資料,然後將資料元素寫出到控制台。 C# : while (myDataReader.Read()) { Console.Write(myDataReader.GetInt32(0) + "\t"); Console.Write(myDataReader.GetString(2) + " " + myDataReader.GetString(1) + "\t"); Console.Write(myDataReader.GetString(3) + "\t"); if (myDataReader.IsDBNull(4)) Console.Write("N/A\n"); else Console.Write(myDataReader.GetInt32(4) + "\n"); } 最後,該樣本先關閉 SqlDataReader,然後再關閉 SqlConnection。 C# : // Always call Close when done reading. myDataReader.Close(); // Close the connection when done with it. mySqlConnection.Close(); 摘要 1、SqlDataReader 用於從 SQL Server 讀取只進資料記錄流。 2、請記住先關閉 SqlDataReader,然後再關閉 SqlConnection。 3、每次只能在 SqlConnection 上開啟一個 SqlDataReader。如果 SqlDataReader 在使用中,相關聯的 SqlConnection 將忙於為 SqlDataReader 提供服務。在這種情況下,除了關閉 SqlConnection 之外,無法在 SqlConnection 上執行任何其他動作。