天天看點

C# 學習筆記02 ADO.net

C# 學習筆記02 ADO.net

ado.net dataset

的設計已明确指出它可獨立于任何資料來源外而存取資料。是以,它可與多個不同的資料裡來源搭配使用、與 xml

資料搭配使用,或用于管理應用程式的本機資料。dataset 包含一或多個由資料列和資料行所組成的 物件集合,以及 datatable 物件中的主索引鍵、外部索引鍵、條件限制 (constraint)

及資料的相關資訊。

ado.net提供與資料源進行互動的相關的公共方法,但是對于不同的資料源采用一組不同的類庫。這些類庫稱為data

providers,并且通常是以與之互動的協定和資料源的類型來命名的。

ado.net是與資料源互動的.net技術。有許多的data

providers,它将允許與不同的資料源交流――取決于它們所使用的或者資料庫。然而無論使用什麼樣的data provider,開發人員将使用相似的與資料源進行互動。sqlconnection對象管理與資料源的連接配接。sqlcommand對象允許開發人員與資料源交流并發送指令給它。為了對進行快速的隻“向前”地讀取資料,使用sqldatareader。如果想使用斷開資料,使用dataset并實作能進行讀取或者寫入資料源的sqldataadapter.

和資料庫互動,必須連接配接它。連接配接幫助指明、資料庫名字、使用者名、密碼,和連接配接資料庫所需要的其它參數。會被command對象使用,這樣就能夠知道是在哪個資料源上面執行指令。

與資料庫互動的過程意味着必須指明想要執行的操作。這是依靠執行的。開發人員使用command對象來發送sql語句給資料庫。command對象使用connection對象來指出與哪個資料源進行連接配接。開發人員能夠單獨使用command對象來直接執行指令,或者将一個command對象的引用傳遞給dataadapter,它儲存了一組能夠操作下面描述的一組資料的指令。

成功與資料建立連接配接後,就可以用command對象來執行查詢、修改、插入、删除等指令;command對象常用的方法有executereader()方法、executescalar()方法和executenonquery()方法;插入資料可用executenonquery()方法來執行插入指令

許多資料操作要求開發人員隻是讀取一串資料。datareader對象允許開發人員獲得從command對象的select語句得到的結果。考慮性能的因素,從datareader傳回的資料都是快速的且隻是“向前”的。這意味着開發人員隻能按照一定的順序從資料流中取出資料。這對于速度來說是有好處的,但是如果開發人員需要操作資料,更好的辦法是使用dataset。

dataset對象是資料在記憶體中的表示形式。它包括多個datatable對象,而datatable包含列和行,就象一個普通的資料庫中的表。開發人員甚至能夠定義表之間的關系來建立主從關系(parent-child

relationships)。dataset是在特定的場景下使用――幫助管理記憶體中的資料并支援對資料的斷開操作的。dataset是被所有data

providers使用的對象,是以它并不像data provider一樣需要特别的字首。

某些時候開發人員使用的資料主要是隻讀的,并且開發人員很少需要将其改變至底層的資料源。同樣一些情況要求在記憶體中緩存資料,以此來減少并不改變的資料被資料庫調用的次數。dataadapter通過斷開模型來幫助開發人員友善的完成對以上情況的處理。當在一單批次的對資料庫的讀寫操作的持續的改變傳回至資料庫的時候,dataadapter

填充(fill)dataset對象。dataaadapter包含對連接配接對象以及當對資料庫進行讀取或者寫入的時候自動的打開或者關閉連接配接的引用。另外,dataadapter包含對資料的select、insert、update和delete操作的command對象引用。開發人員将為dataset中的每一個table都定義dataaadapter,它将為開發人員照顧所有與資料庫的連接配接。是以開發人員将做的工作是告訴dataadapter什麼時候裝載或者寫入到資料庫

datatable 是一個資料網格控件。它可以被應用在 和

上。它無須代碼就可以簡單的綁定資料庫。它具有風格的使用者界面。

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;

 内容來自百度百科

繼續閱讀