ASP.NET 使您可以靈活地串連至資料庫。一種簡單的方法是使用資料來源控制項,通過這些控制項可以將資料訪問封裝到可以使用串連和查詢資訊配置的控制項中。或者,可以使用 ADO.NET 類自己編寫執行資料訪問的代碼。
使用 ASP.NET 網頁中的資料來源控制項
若要使用資料來源控制項串連至資料庫,請執行以下操作:
確定所需的資料來源控制項的類型。例如,ObjectDataSource 控制項使用中介層業務對象檢索和修改資料,而 SqlDataSource 控制項允許您提供資料來源和 SQL 陳述式的串連,從而檢索和修改資料。
使用 SqlDataSource 控制項時,請確定所需的提供者。提供者是與特定類型的資料庫進行通訊的類。預設為 System.Data.SqlClient 提供者,該提供者串連至 Microsoft SQL Server 資料庫。
將資料來源控制項添加到頁面中,並設定其資料訪問屬性。例如,ObjectDataSource 控制項需要中介層業務物件類型及一種或多種用於查詢或修改資料的方法。SqlDataSource 控制項需要一個包含提供者開啟特定資料庫時所需資訊的連接字串,以及用於查詢或修改資料的一個或多個 SQL 命令。
可以將提供者和串連資訊指定為 SqlDataSource 控制項的單獨屬性,也可以在 Web 應用程式的 Web.config 檔案中集中定義提供者和連接字串資訊。在 Web.config 檔案中儲存串連資訊後,可以重複使用這些資訊處理多個資料控制項執行個體。此外,還可以協助您使用存取控制清單 (ACL) 和加密保護連接字串資訊。有關更多資訊,請參見本主題後面的“連接字串”。
提供者
ADO.NET 提供者是可以與特定類型的資料庫或資料存放區區進行通訊的類。例如,一個提供者可能能夠與 SQL Server 資料庫進行通訊,而另一個提供者可能能夠與 Oracle 資料庫進行通訊。.NET Framework 中包含的提供者有:
System.Data.SqlClient 命名空間中用於 SQL Server 的 .NET Framework 資料提供者。此提供者為 SqlDataSource 控制項的預設提供者;如果您正在使用SqlDataSource 控制項串連至 SQL Server 資料庫,則無需顯式指定提供者。
System.Data.OleDb 命名空間中用於 OLE DB 的 .NET Framework 資料提供者。
System.Data.Odbc 命名空間中用於 ODBC 的 .NET Framework 資料提供者。
System.Data.OracleClient 命名空間中用於 Oracle 的 .NET Framework 資料提供者。
可以將 Web.config 檔案中的提供者指定為連接字串的一部分,也可以指定為頁面上的單個資料來源控制項的屬性。
連接字串
連接字串提供相關資訊,當提供者與特定資料庫進行通訊時需要這些資訊。可以將連接字串儲存在 Web.config 檔案中,並引用資料來源控制項中的配置項。
連接字串通常會提供伺服器或資料庫伺服器的位置、要使用的特定資料庫及身分識別驗證資訊,具體取決於提供者。與提供者相同,您可以在 Web.config 檔案中指示連接字串,也可以指示為頁面上的單個資料來源控制項的屬性。
連接字串儲存
最佳做法是將連接字串放在 Web.config 檔案中。在 <configuration> 元素元素中,可以建立一個名為 <connectionStrings> 的子項目並將連接字串置於其中,如此樣本所示:
複製
<connectionStrings> <add name="NorthindConnectionString" connectionString=" Server=MyDataServer;Integrated Security=SSPI;Database=Northwind;" providerName="System.Data.SqlClient" /></connectionStrings>
在此樣本中,同時提供了名稱和提供者。應用程式中任何頁面上的任何資料來源控制項都可以引用此連接字串項。將連接字串資訊儲存在 Web.config 檔案中的優點是,您可以方便地更改伺服器名稱、資料庫或身分識別驗證資訊,而無需編輯各個網頁。此外,您可以使用加密保護連接字串。有關更多資訊,請參見如何:確保使用資料來源控制項時連接字串的安全。
資料來源控制項
資料來源控制項提供資料服務(包括檢索和修改資料),這些服務可由其他資料繫結 Web 伺服器控制項(如 GridView、FormView 和 DetailsView 控制項)使用。資料來源控制項(如 SqlDataSource)會封裝串連至資料庫以檢索或操作資料所需的所有元素(提供者、連接字串和查詢)。例如,下面的 SqlDataSource 控制項配置為串連至資料庫並從 Customers 表中讀取所有記錄:
複製
<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="Select * from Customers" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" />
在此樣本中,提供者名稱和連接字串儲存於 Web.config 檔案中,而 SQL 查詢配置為資料來源控制項的屬性。
使用代碼執行資料訪問
如果不適於在應用程式中使用資料來源控制項,則可以使用 ADO.NET 類自行對資料訪問進行編碼。如果使用資料來源控制項無法滿足您的複雜要求,或者如果要建立在網頁外部執行資料訪問的單獨組件,則可以自行對資料訪問進行編碼。
請參見任務
如何:使用 SqlDataSource 控制項串連到 Access 資料庫
如何:使用 SqlDataSource 控制項串連到 ODBC 資料庫
如何:在樣板化控制項中綁定到資料
概念
ASP.NET 資料訪問概述