返回“ASP.NET 2.0數據教程目錄”
導言:
在本系列我們用類型化的DataSets來構建數據訪問層。就像在 第一章探討的那樣,類型化DataSets的DataTables用作存儲數據的“倉庫 ”,而TableAdapters作為連接數據庫的通道,以檢索、修改數 據.TableAdapters 將處理數據庫的很多復雜的細節進行了封裝,將我們解脫出來 ,免去了寫代碼連接數據庫、發出命名、向DataTable填充數據的痛苦.
不 過在某些時候我們需要深入的探究TableAdapter,直接寫代碼處理ADO.NET對象. 在第63章《Wrapping Database Modifications within a Transaction》裡我們 向TableAdapter添加了多個方法以開啟、提交、回滾ADO.NET事務.這些方法都使 用內在的、手動創建的SqlTransaction對象來對TableAdapter的SqlCommand對象 進行賦值.
在本文,我們將考察如何訪問TableAdapter的“數據庫連 接”和“數據庫命令”級的設置.具體來說,我們將向 ProductsTableAdapter添加函數,以訪問“連接字符串”(connection string)和“命令過期時間”(command timeout)設置.
用 ADO.NET處理數據
微軟.NET Framework包含了很多處理數據的特殊用途的 類。這些類用System.Data namespace來進行創建,其中就包括ADO.NET classe類 ,一些ADO.NET名下的類需要依賴某個特定的data provider才能工作.你可以想象 在ADO.NET classes類和某個數據存儲(data store)之間,有一個data provider 充當連接通道(communication channel)以供傳遞信息.data provider包括OleDb 、ODBC, 以及其它一些專門設計來連接某種特定數據庫系統的data provider.舉 個例子,我們不能用OleDb來連接一個Microsoft SQL Server數據庫.而SqlClient 就可以,因為它是經過優化的專門設計來連接SQL Server的.
當編程訪問 數據時,通常使用下面的模式:
1.新建數據庫連接
2.發出命令
3.用SELECT查詢來返回記錄
以上3步每步都有單獨的ADO.NET classes類來執行.比如連接數據庫用SqlConnection class類;要發出INSERT, UPDATE, DELETE,或SELECT命令,用SqlCommand class類.
除了第63章 《Wrapping Database Modifications within a Transaction》外,我們都沒有 自己寫任何ADO.NET代碼,因為TableAdapters自動生成的代碼包含了一些必要的 功能:連接數據庫、發出命令、檢索數據、填充DataTables.但是有時我們要自己 定制這些設置.在接下來的幾步我們將探究TableAdapters內部使用的ADO.NET對象 .