ADO.NET 快速入門(十四):使用 SQL Server 檢索數據

SqlDataReader 類提供了一種從數據源讀取數據記錄只進流的方法。若是想使用 OLE DB 接口的數據庫或者 SQL Server7.0 以前的版本,請參考文章: 使用 OLE DB 檢索數據
 
SqlCommand 調用 ExecuteReader 方法建立 SqlDataReader,不經過直接使用構造器建立。當 SqlDataReader 正在使用時,關聯的 SqlConnection 處於對 SqlDataReader 服務掛起狀態 。在這個狀態下,除非關閉 SqlConnection 的鏈接,沒有其餘操做能夠執行。在調用 SqlDataReader 的 Close 方法以前,會一直保持這種狀態。
 
SqlDataReader 提供一種從 SQL Server 數據源讀取數據記錄只進流的手段。更多交互操做,例如:Scrolling、Filtering、Navigating、Romoting,等等,請使用 DataSet。 
 
這個例子,建立了到 Northwind 庫的 SqlConnection 鏈接。SqlCommand 從 Employee 表選擇數據項,而後利用 SqlCommand 的 ExecuteReader 方法執行查詢。命令的結果傳遞給 SqlDataReader。
 
            SqlDataReader myDataReader = null;

            SqlConnection myConnection = new SqlConnection("server=(local);Integrated Security=SSPI;database=northwind;");
            SqlCommand myCommand = new SqlCommand("SELECT EmployeeID, LastName, FirstName, Title, ReportsTo FROM Employees", myConnection);

            myConnection.Open();
            myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

 

這個例子,使用 SqlDataReader 的 Read 方法讀取數據而且把數據項輸出到控制檯程序。
 
            while (myDataReader.Read())
            {
                Console.Write(myDataReader.GetInt32(0) + "\t");
                Console.WriteLine(myDataReader.GetString(2) + " " + myDataReader.GetString(1) + "\t");
                Console.WriteLine(myDataReader.GetString(3) + "\t");

                if (myDataReader.IsDBNull(4))
                    Console.WriteLine("N/A\n");
                else
                    Console.WriteLine(myDataReader.GetInt32(4) + "\n");
            }

 

最後,這個例子關閉 SqlDataReader,而後是 SqlConnection。
 
            // 當讀取完成時,調用 Close 方法
            myDataReader.Close();

            // 關閉鏈接
            myConnection.Close();

 

總結
一、SqlDataReader 用於快速地從數據源讀取數據記錄只進流。
二、請記住,關閉 SqlDataReader,而後是 SqlConnection。
三、請記住,若是 SqlDataReader 正在使用,關聯的 SqlConnection 處於對 SqlDataReader 服務掛起狀態。在關閉 SqlConnection 鏈接之前,沒有任何與之的操做能夠執行。
 
相關文章
相關標籤/搜索