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前綴,和允許進行交互的數據源類型。
和數據庫交互,你必須連接它。連接幫助指明數據庫服務器、數據庫名字、用戶名、密碼,和連接數據庫所需要的其它參數。connection對象會被command對象使用,這樣就能夠知道是在哪個數據庫上面執行命令。
與數據庫交互的過程意味著你必須指明想要發生的操作。這是依靠command對象執行的。你使用command對象來發送SQL語句給數據庫。command對象使用connection對象來指出與哪個數據庫進行連接。你能夠單獨使用command對象來直接執行命令,或者將一個command對象的引用傳遞給SqlDataAdapter,它保存了一組能夠操作下面描述的一組數據的命令。
許多數據操作要求你只是讀取一串數據。data reader對象允許你獲得從command對象的SELECT語句得到的結果。考慮性能的因素,從data reader返回的數據都是快速的且只是“向前”的數據流。這意味著你只能按照一定的順序從數據流中取出數據。這對于速度來說是有好處的,但是如果你需要操作數據,更好的辦法是使用 DataSet
DataSet對象
DataSet對象是數據在內存中的表示形式。它包括多個DataTable對象,而DataTable包含列和行,就象一個普通的數據庫中的表。你甚至能夠定義表之間的關系來創建主從關系(parent-child relationships)。DataSet是在特定的場景下使用――幫助管理內存中的數據并支持對數據的斷開操作的。DataSet是被所有Data Providers使用的對象,因此它并不像Data Provider一樣需要特別的前綴。
SqlDataAdapter類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;