資料存取是所有應用程式的核心基礎。本文將詳細說明如何使用 C# 搭配 ADO.NET 存取 SQL Server 資料庫,並將查詢結果呈現在資料繫結的 DataGrid 控制項中。我們將透過一個簡單的 Windows Forms 應用程式範例,逐步展示完整的實作流程。
ADO.NET 採用斷線式架構,不需要維持持續的資料庫連線,這大幅降低了資料庫伺服器的負載。此外,ADO.NET 只需少量程式碼即可輕鬆切換不同的資料來源,提供極高的彈性與可攜性。
ADO.NET 的四大核心物件構成所有資料操作的基礎:
所有 ADO.NET 命名空間的基礎,包含 DataTable、DataColumn、DataView 與 Constraints 等核心類別,定義了記憶體中資料結構的基本元素。
定義各資料提供者共用的通用物件,如 DataAdapter、DataColumnMapping、DataTableMapping,提供存取資料來源的集合基礎架構。
通用資料提供者,支援連接多種資料來源(SQL Server、Oracle OLE DB、Jet 4.0 等)。當需連接多種不同資料庫時適用,但效能不如專用提供者。
專為 SQL Server 7.0 以上版本設計,直接呼叫 SQL Server 原生 API,效能優於 OleDb 提供者,是開發 SQL Server 應用的首選。
提供對應 SQL Server 資料類型的類別,針對 SQL Server 後端優化,效能最佳但僅限 SQL Server 使用。
支援所有相容 ODBC 驅動程式的提供者,.NET Framework 1.1 起支援。
首先在表單上拖放一個 DataGrid 控制項(命名為 dataGrid1),如圖所示:

using System.Data;
using System.Data.OleDb;
private void Form1_Load(object sender, System.EventArgs e)
{
string strConn, strSQL;
// 設定 OLEDB 連線字串,指向本機 Northwind.mdb
strConn = "Provider=Microsoft.JET.OLEDB.4.0;" + "data source=" + "C:\\DataAccess\\Northwind.mdb";
// 定義查詢語句
strSQL = "SELECT CustomerID, CompanyName, ContactName, ContactTitle, ";
strSQL += "Address, City, Country FROM Customers";
// 建立 DataAdapter(注意:未顯式建立 Connection 物件)
OleDbDataAdapter da = new OleDbDataAdapter(strSQL, strConn);
// 建立 DataSet 並填入資料
DataSet ds = new DataSet();
da.Fill(ds, "Customers");
// 設定 DataGrid 資料繫結
dataGrid1.DataMember = "Customers";
dataGrid1.DataSource = ds;
}
執行程式後,DataGrid 將顯示 Northwind.mdb 中 Customers 資料表的查詢結果:

資料網格會自動處理捲動條顯示,當欄位或資料列超出可視區域時自動啟用捲動功能。至此,您已掌握在 C# 應用程式中使用 ADO.NET 進行資料存取,並建立資料繫結網格控制項顯示查詢結果的核心技術。