摘要:文章立足于實(shí)際應(yīng)用,闡述了ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的步驟,并利用較大篇幅對(duì)ASP.NET平臺(tái)下使用類庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作的方法進(jìn)行了詳細(xì)論述,并給出源代碼和詳細(xì)注釋,文章給出的所有代碼均在ASP.NET2.0下調(diào)試通過(guò)。
關(guān)鍵字:數(shù)據(jù)庫(kù);類庫(kù);調(diào)用
中圖分類號(hào):TP31文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1674-1145(2009)05-0153-02
ASP.NET不是ASP的簡(jiǎn)單升級(jí),而是全新一代的動(dòng)態(tài)網(wǎng)頁(yè)實(shí)現(xiàn)系統(tǒng)。它是一種建立在通用語(yǔ)言上的程序構(gòu)架,能被用于一臺(tái)Web服務(wù)器來(lái)建立強(qiáng)大的Web應(yīng)用程序。它是微軟發(fā)展的新體系結(jié)構(gòu).NET的一部分,是ASP和.NET技術(shù)的結(jié)合。ASP.NET在面向?qū)ο笮?、?shù)據(jù)庫(kù)連接、大型站點(diǎn)應(yīng)用等方面都優(yōu)于ASP,ASP.NET還提供更多的其他方面的新特性,例如:內(nèi)置的對(duì)象緩存和頁(yè)面結(jié)果緩存;內(nèi)置的XML支持,可用于XML數(shù)據(jù)集的簡(jiǎn)單處理;服務(wù)器控制提供了更充分的交互式制等。
ASP.NET中的ADO.NET和ASP中的ADO相對(duì)應(yīng),它是ADO的改進(jìn)版本。ADO.NET的最重要概念之一是DataSet。DataSet是不依賴于數(shù)據(jù)庫(kù)的獨(dú)立數(shù)據(jù)集合。(所謂獨(dú)立,就是:即使斷開(kāi)數(shù)據(jù)鏈路,或者關(guān)閉數(shù)據(jù)庫(kù),DataSet依然是可用的。)如果你在ASP里面使用過(guò)非連接記錄集合(Connectionless Recordset),那么DataSet就是這種技術(shù)的最徹底的替代品。在ADO.NET中,通過(guò)Managed Provider所提供的應(yīng)用程序編程接口(API),可以輕松地訪問(wèn)各種數(shù)據(jù)源的數(shù)據(jù),包括OLEDB所支持的和ODBC支持的數(shù)據(jù)庫(kù)。
ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的步驟是:
1.創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)鏈路;
2.請(qǐng)求一個(gè)記錄集合;
3.把記錄集合暫存到DataSet;
4.如果需要,返回第2步;(DataSet可以容納多個(gè)數(shù)據(jù)集合)
5.關(guān)閉數(shù)據(jù)庫(kù)鏈路;
6.在DataSet上作所需要的操作。
DataSet在內(nèi)部是用XML來(lái)描述數(shù)據(jù)的。由于XML是一種平臺(tái)無(wú)關(guān)、語(yǔ)言無(wú)關(guān)的數(shù)據(jù)描述語(yǔ)言,而且可以描述復(fù)雜數(shù)據(jù)關(guān)系的數(shù)據(jù),比如父子關(guān)系的數(shù)據(jù),所以DataSet實(shí)際上可以容納具有復(fù)雜關(guān)系的數(shù)據(jù),而且不再依賴于數(shù)據(jù)庫(kù)鏈路。
按照上面的訪問(wèn)數(shù)據(jù)庫(kù)的步驟方法,在需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),只需按部就班的寫(xiě)出相關(guān)代碼和參數(shù)就能比較容易的實(shí)現(xiàn)ADO.NET編程。但在進(jìn)行大型軟件開(kāi)發(fā)時(shí),如果每訪問(wèn)一次數(shù)據(jù)庫(kù),就對(duì)操作數(shù)據(jù)庫(kù)的代碼進(jìn)行重復(fù)編寫(xiě),則大大增加了程序代碼的冗余度,降低了軟件的可靠性和可讀性。所以本文使用類庫(kù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),將對(duì)數(shù)據(jù)庫(kù)的操作代碼進(jìn)行簡(jiǎn)化。按照訪問(wèn)數(shù)據(jù)庫(kù)的步驟,將相應(yīng)的代碼寫(xiě)入類中,在使用時(shí)直接調(diào)用相關(guān)的類,就可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)操作。
具體步驟如下:
首先創(chuàng)建一個(gè)類庫(kù)DAL,在其中定義數(shù)據(jù)庫(kù)的基類database:
public class database//數(shù)據(jù)庫(kù)基類
{
public SqlConnection databaselink() //連接數(shù)據(jù)庫(kù)
{
SqlConnection conn=new SqlConnection ();
conn.ConnectionString =ConfigurationSettings.AppSettings .Get ("connstr");
//通過(guò)web.config文件獲取connstr作為conn連接字符串。
return conn;
}
public DataSet tablelink(string linkstr,SqlConnection conn)
//連接表,linkstr為連接字符串
{
SqlDataAdapter sda=new SqlDataAdapter(linkstr,conn);
DataSet ds= new DataSet();
try
{
sda.Fill (ds);
}
catch
{
Response.Write("");
}
return ds;
}
}
再創(chuàng)建另一個(gè)類庫(kù)BUL,在其中定義操作數(shù)據(jù)庫(kù)的類operatdatabase:
using dal;//調(diào)用數(shù)據(jù)庫(kù)基類的命名空間
public class operatdatabase//操作數(shù)據(jù)庫(kù)的類
{
public DataSet selecttable(string linkstr) //查詢表,
{
database db=new database ();
SqlConnection conn=db.databaselink();
DataSet ds=new DataSet();
ds=db.tablelink(linkstr,conn);
return ds;
}
public void updatatable(string linkstr) //更新記錄
{
database db=new database ();
SqlConnection conn=db.databaselink();
DataSet ds=new DataSet();
ds=db.tablelink(linkstr,conn);
}
public void datalist(DataGrid DataGrid1,string linkstr) //綁定數(shù)據(jù)
{
operatdatabase db=new operatdatabase() ;
DataSet ds=new DataSet();
ds=db.selecttable (linkstr);
DataGrid1.DataSource =ds.Tables[0] ;
DataGrid1 .DataBind ();
}
}
在需要進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),首先要調(diào)用操作數(shù)據(jù)庫(kù)的類operatdatabase的命名空間BUL,然后再調(diào)用查詢、更新和綁定數(shù)據(jù)庫(kù)的相關(guān)函數(shù)。
using bul;
…
operatdatabaseop1=new operatdatabase() ;
//定義一個(gè)操作數(shù)據(jù)庫(kù)的對(duì)象op1
op1.selecttable(string linkstr);
op1.updatatable(string linkstr);
op1.datalist(DataGrid DataGrid1,string linkstr);
//使用該對(duì)象的實(shí)例對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
在一般的信息管理系統(tǒng)程序中,如果使用類庫(kù)進(jìn)行數(shù)據(jù)庫(kù)編程,則只需在數(shù)據(jù)庫(kù)操作時(shí)反復(fù)調(diào)用操作數(shù)據(jù)庫(kù)的類operatdatabase,定義一個(gè)關(guān)于該類的對(duì)象,使用相應(yīng)的方法,就能減少相當(dāng)多的重復(fù)代碼,增加了程序的健壯性,大大提高了程序的可讀性與移植性。
參考文獻(xiàn)
[1]李萬(wàn)寶.ASP.NET技術(shù)詳解與應(yīng)用實(shí)例[M].機(jī)械工業(yè)出版社.
[2]鄭霞,趙輝,徐慧.ASP.NET2.0編程技術(shù)與實(shí)例[M].人民郵電出版社.
作者簡(jiǎn)介:容湘萍,女,湖南邵東人,廣東省惠州商業(yè)學(xué)校計(jì)算機(jī)助理講師,研究方向:計(jì)算機(jī)應(yīng)用。