在Microsoft Office System中使用ADO.NET資料集(二)

來源:互聯網
上載者:User
ado|資料 建立一個DataSet

假定你必須使用一個靈活的資料對象,這個對象允許你包含多個表,在表與表之間設定關係,以及向前或向後讀取資料。

ADO.NET中提供這些特性——甚至更多——的對象就是DataSet。DataSet是一種斷開式(disconnected)對象,這意味著一旦填充完資料,就不必保持資料庫連接。到資料庫伺服器的網路連接即使斷開了也不會影響你的用戶端應用程式使用資料庫中的資料。這項技術的優勢之一就是你釋放資料庫連接給其他使用者,並且你的應用程式不再依賴於這個串連。然而,這也意味著資料庫中的資料在你填充完DataSet後可能改變,你應該意識到這個可能的差異。

資料訪問層可以建立多個DataSet對象。例如,你可能使用一個DataSet容納待用資料以便填充使用者介面上的一個列表框,或者你可能想使這些資料供多個使用者訪問。另一個對象可能包含某個使用者更新後的資料,將更改回傳到資料庫中的代碼儘可能簡單也是必要的。現在,你可以使用一個對象完成這所有的需求。

圖1展示了Northwind資料庫中各個表的結構,這些表包含了客戶和訂單資訊。你可以建立一個DataSet,作為這個資料庫的結構鏡像,或者完全改變它以適應你的應用程式需求。



圖1:在Northwind Customers DataSet 中使用的各個表的結構

下面的代碼在GetDataSet方法中定義了一個DataSet,包含了使用者訂單資料的全部列。它帶有一個bSaveSchema參數,用於指示該過程是否需要將DataSet對象的XML和XML架構的拷貝儲存為磁碟檔案,這些檔案將在該應用程式的其他部分使用。

GetDataSet的代碼以執行個體化一個新的空DataSet對象開始,這個DataSet對象被命名為NorthwindCustomerOrders。如果你不提供給這個DataSet一個名稱,這個DataSet將採用預設的命名NewDataSet。這在大多數情況下沒有什麼問題,但是當你從這個DataSet產生並使用XML時,這個名字有時將作為XML結構的一部分。

Public Shared Function GetDataSet(ByVal bSaveSchema As Boolean) As DataSet

'Instantiate the DataSet, giving it a custom name

'(The default name is NewDataSet)

Dim ds As New DataSet("NorthwindCustomerOrders")

下一步將建立資料庫連接——從應用程式設定檔中讀取資料庫連接字串。

'Set up the connection to the database, reading from the App.config

Dim sqlCnn As New SqlConnection

sqlCnn.ConnectionString = _

ConfigurationSettings.AppSettings("ConnectDB")

sqlCnn.Open()

有幾種方法建立DataSet 中的DataTable對象來容納關係資料。其中一種方法就是使用SQL語句(作為一個字串變數)。這很容易辦到,但是,通常你更希望使用預存程序來訪問資料。下面代碼中簡單的SELECT語句無需任何參數——它返回表中完整的記錄集合。

大多數ADO.NET類,同.NET Framework中其他許多類一樣,擁有多個建構函式,每個建構函式具有不同參數,以便於你選擇如何執行個體化對象。你可以傳遞一個內容為SQL語句的字串和一個連線物件給SqlCommand對象的建構函式,執行個體化一個SqlCommand對象。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。