如何用C#和ADO.NET訪問
數據訪問是任何應用程序的基礎。在本文中,我將說明如何用C#和ADO.NET訪問基于SQL Server的數據,以及如何在一個數據綁定的網格控件中顯示數據。我用一個簡單的C#和ADO.NET訪問為例。
ADO.NET結構
使用ADO.NET不需要維持一個連接。另外,在ADO.NET中,只需用幾行代碼,你就可以從一個數據源轉到另一個數據源。
ADO.NET的核心對象有Command, Connection, DataReader和DataAdapter。它們是.NET中所有數據操作的基礎。
核心ADO.NET命名空間
◆System.Data:是其它命名空間的基礎,并補充DataTable, DataColumn, DataView和Constraints對象。
◆System.Data.Common:定義由各種數據提供者共享的普通對象,包括DataAdapter, DataColumnMapping和DataTableMapping。它為數據提供者所用,包含用于訪問數據源的集合。
◆System.Data.OleDb:定義你用來連接到數據源并修改各種數據源中的數據的對象。它作為普通數據提供者而編寫,由包含SQL Server、微軟Oracle OLE DB Provider和微軟Jet 4.0 Provider驅動器的.NET Framework提供執行。當你需要連接到許多不同的數據源時,就會用到這個命名空間,并且你希望達到比提供者更佳的性能。
◆System.Data.SqlClient:直接利用SQL Server應用程序接口,提供比更為普通的System.Data.OleDb更佳的性能。這是一個專門為SQL Server 7.0及以上版本建立的提供者命名空間。
◆System.Data.SqlTypes:專門為SQL Server的數據類型提供類。這個命名空間專為SQL Server而設計,并提供比其它命名空間更佳的性能,但只應用于SQL Server后端。
◆System.Data.Odbc:處理所有兼容ODBC驅動器。只有.NET Framework 1.1支持這個命名空間,所以安裝新版Framework就能獲得它。
數據網格實例
給表格dataGrid1增加一個數據網格,需要利用下面的命名空間:
- using System.Data;
- using System.Data.OleDb;
接下來,我定義OleDBDataAdapter對象da并將它提交給查詢語句(strSQL)和連接字符串(strConn)。注意,我在例子中沒有建立一個連接(Connection)對象。
然后,我定義數據組ds,它被用來從網格控件中的用戶表(Customers)中獲得實際數據。我使數據網格控件dataGrid1的 DataMember特性指向到我獲得數據的表格,并將控件DataSource的特性設定給DataSetds。(DataMember特性獲得/設定 DataSource中的一個綁定控件的表格,DataSource特性獲得/設定用來安裝控件的數據源。)當你運行列表A中的代碼時,結果如圖2所示。
我顯示C:DataAccessNorthwind.mdb數據庫中的數據,只看到我在選擇語句中選中的欄。如果選擇的列數或欄數超過頁面的大小,網格控件會自動顯示滾動條。
現在你了解了用C#和ADO.NET訪問,以及建立一個數據網格控件顯示查詢返回數據的基本原理了。
【編輯推薦】