基于ADO.NET訪問數(shù)據(jù)庫操作說明
當(dāng)導(dǎo)航到下一頁的記錄時,修改ADO.NET訪問數(shù)據(jù)庫子句使它包含所有唯一標(biāo)識比當(dāng)前頁標(biāo)識大的記錄;當(dāng)導(dǎo)航到前面一頁時,修改WHERE子句使它包含所有唯一標(biāo)識比當(dāng)前頁標(biāo)識小的記錄。
不論從語法來看,還是從風(fēng)格和設(shè)計目標(biāo)來看,ADO.NET訪問數(shù)據(jù)庫都和ADO有顯著的不同。在ASP中通過ADO訪問數(shù)據(jù)庫,一般要通過以下四個步驟:
1、 創(chuàng)建一個到數(shù)據(jù)庫的鏈路,即ADO.Connection;
2、 查詢一個數(shù)據(jù)集合,即執(zhí)行SQL,產(chǎn)生一個Recordset;
3、 對數(shù)據(jù)集合進行需要的操作;#t#
關(guān)閉數(shù)據(jù)鏈路。
在ADO.NET里,這些步驟有很大的變化。ADO.NET的最重要概念之一是DataSet。ADO.NET訪問數(shù)據(jù)庫是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合。所謂獨立,就是:即使斷開數(shù)據(jù)鏈路,或者關(guān)閉數(shù)據(jù)庫,DataSet依然是可用的。如果你在ASP里面使用過非連接記錄集合(Connectionless Recordset),那么DataSet就是這種技術(shù)的最徹底的替代品。#t#
有了DataSet,那么,ADO.NET訪問數(shù)據(jù)庫的步驟就相應(yīng)地改變了:
1、 創(chuàng)建一個數(shù)據(jù)庫鏈路;
2、 請求一個記錄集合;
3、 把記錄集合暫存到DataSet;
4、 如果需要,返回第2步;(DataSet可以容納多個數(shù)據(jù)集合)
5、 關(guān)閉數(shù)據(jù)庫鏈路;
6、 在DataSet上作所需要的操作。
DataSet在內(nèi)部是用XML來描述數(shù)據(jù)的。由于XML是一種平臺無關(guān)、語言無關(guān)的數(shù)據(jù)描述語言,而且可以描述復(fù)雜數(shù)據(jù)關(guān)系的數(shù)據(jù),比如父子關(guān)系的數(shù)據(jù),所以DataSet實際上可以容納具有復(fù)雜關(guān)系的數(shù)據(jù),而且不再依賴于數(shù)據(jù)庫鏈路。
上面的代碼和ADO沒有什么太大的差別。應(yīng)該提到的是,ADO.NET訪問數(shù)據(jù)庫提供了兩種數(shù)據(jù)庫連接方式:ADO方式和SQL方式。這里我們是通過ADO方式連接到數(shù)據(jù)庫。關(guān)于建立數(shù)據(jù)庫連接的詳細信息,我們在后面的篇幅中將會講到。