ADO.NET

ADO.NET

百科名片

ADO.NET的名稱起源於ADO(ActiveX Data Objects),這是一個廣泛的類組,用於在以往的Microsoft技術中訪問數據.之所以使用ADO.NET名稱,是因爲Microsoft希望表明,這是在.NET編程環境中優先使用的數據訪問接口.

作用

它提供了平臺互用性和可伸縮的數據訪問。ADO.NET增強了對非連接編程模式的支持,並支持RICH XML.由於傳送的數據都是XML格式的,因此任何能夠讀取XML格式的應用程序都可以進行數據處理。事實上,接受數據的組件不一定要是ADO .NET組件,它可以是基於一個Microsoft Visual Studio的解決方案,也可以是任何運行在其它平臺上的任何應用程序。  ADO.NET是一組用於和數據源進行交互的面向對象類庫。通常情況下,數據源是數據庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。  ADO.NET允許和不同類型的數據源以及數據庫進行交互。然而並沒有與此相關的一系列類來完成這樣的工作。因爲不同的數據源採用不同的協議,所以對於不同的數據源必須採用相應的協議。一些老式的數據源使用ODBC協議,許多新的數據源使用OleDb協議,並且現在還不斷出現更多的數據源,這些數據源都可以通過.NET的ADO.NET類庫來進行連接。  ADO.NET提供與數據源進行交互的相關的公共方法,但是對於不同的數據源採用一組不同的類庫。這些類庫稱爲Data Providers,並且通常是以與之交互的協議和數據源的類型來命名的。表1列處了一些常見的data providers,以及它們所使用的API前綴,和允許進行交互的數據源類型。

ADO.NET包含的類

SqlConnection 類

和數據庫交互,你必須連接它。連接幫助指明數據庫服務器、數據庫名字、用戶名、密碼,和連接數據庫所需要的其它參數。connection對象會被command對象使用,這樣就能夠知道是在哪個數據庫上面執行命令。  與數據庫交互的過程意味着你必須指明想要發生的操作。這是依靠command對象執行的。你使用command對象來發送SQL語句給數據庫。command對象使用connection對象來指出與哪個數據庫進行連接。你能夠單獨使用command對象來直接執行命令,或者將一個command對象的引用傳遞給SqlDataAdapter,它保存了一組能夠操作下面描述的一組數據的命令。

COMMAND對象

成功於數據建立連接後,就可以用COMMAND對象來執行查詢,修改,插入,刪除等命令; COMMAND對象常用的方法有ExecuteReader方法,ExecuteScalar()方法ExecuteNonQuery()方法;插入數據可用ExecuteNOnQuery()方法來執行插入命令。

sqlDataReader類

許多數據操作要求你只是讀取一串數據。data reader對象允許你獲得從command對象的SELECT語句得到的結果。考慮性能的因素,從data reader返回的數據都是快速的且只是“向前”的數據流。這意味着你只能按照一定的順序從數據流中取出數據。這對於速度來說是有好處的,但是如果你需要操作數據,更好的辦法是使用DataSet。

DataSet對象

DataSet對象是數據在內存中的表示形式。它包括多個DataTable對象,而DataTable包含列和行,就象一個普通的數據庫中的表。你甚至能夠定義表之間的關係來創建主從關係(parent-child relationships)。DataSet是在特定的場景下使用――幫助管理內存中的數據並支持對數據的斷開操作的。DataSet是被所有Data Providers使用的對象,因此它並不像Data Provider一樣需要特別的前綴。

SqlDataAdapter類

某些時候你使用的數據主要是隻讀的,並且你很少需要將其改變至底層的數據源。同樣一些情況要求在內存中緩存數據,以此來減少並不改變的數據被數據庫調用的次數。Data adapter通過斷開模型來幫助你方便的完成對以上情況的處理。當在一單批次的對數據庫的讀寫操作的持續的改變返回至數據庫的時候,Data adapter 填充(fill)DataSet對象。data adapter包含對連接對象以及當對數據庫進行讀取或者寫入的時候自動的打開或者關閉連接的引用。另外,data adapter包含對數據的SELECT,INSERT,UPDATE和DELETE操作的command對象引用。你將爲DataSet中的每一個table都定義data adapter,它將爲你照顧所有與數據庫的連接。所有你將做的工作是告訴data adapter什麼時候裝載或者寫入到數據庫。

DataTable類

DataTable 是一個數據網格控件。它可以被應用在 VB 和 ASP 上。它無須代碼就可以簡單的綁定數據庫。它具有微軟風格的用戶界面。  DataTable的實例化以及添加列:  DataTable dt = new DataTable();  dt.Columns.Add("ID");  dt.Columns.Add("Name");  DataRow dr = dt.NewRow();  object[] objs = { 1, "Name" };  dr.ItemArray = objs;  dt.Rows.Add(dr);  this.dataGridView1.DataSource = dt;

總結

ADO.NET是與數據源交互的.NET技術。有許多的Data Providers,它將允許與不同的數據源交流――取決於它們所使用的協議或者數據庫。然而無論使用什麼樣的Data Provider,你將使用相似的對象與數據源進行交互。SqlConnection對象管理與數據源的連接。SqlCommand對象允許你與數據源交流併發送命令給它。爲了對進行快速的只“向前”地讀取數據,使用SqlDataReader。如果想使用斷開數據,使用DataSet並實現能進行讀取或者寫入數據源的SqlDataAdapter。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章