摘要:該文對ADO.NET下的數(shù)據(jù)庫訪問模式進(jìn)行了研究,針對常見的SQL數(shù)據(jù)庫訪問方式,設(shè)計了一種通用性的訪問模式,提高了程序的移植性。
關(guān)鍵詞:C# 數(shù)據(jù)庫訪問;移植性
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)24-6928-02
A Commom Method to Acces Data Base Based on ADO.NET
GONG Zhen
(Wuhan University of Technology Resource and Enviroments Institution, Wuhan 430079, China)
Abstract: The paper researches the menthods to access data base based on ADO.net, gives one kind of access methos,improves programmer's transplations.
Key words: C#; data base access; transplation
ADO.NET是Microsoft公司在.Net平臺下提出的新的數(shù)據(jù)訪問模型。ADO.NET結(jié)構(gòu)圖如圖1。在ANO.NET2.0中,可以使用多種.NET Framework數(shù)據(jù)庫提供程序來訪問數(shù)據(jù)源。數(shù)據(jù)提供程序有:1) SQL Server.NET Framework; 2)Oracle.NET Framework;3) OLE DB.NET Framework; 4) ODBC.NET Framework。該文針對SQL Server.NET Framework的訪問模式做進(jìn)一步的探討。
1 模式描述
按照ADO.NET提供的訪問模式,常用的做法是第一步建立Connection對象,建立Connection對象常用的方式是將本地計算機(jī)名,用戶名,密碼等以字符串的方式進(jìn)行描述;第二步創(chuàng)建Command對象的字符串,例如查詢方式,查詢內(nèi)容等。第三步則是打開連接,執(zhí)行命令即可。這種做法能解決實(shí)際問題,但是系統(tǒng)的移植性很差,修改起來不方便。因此為了解決這種問題,設(shè)計了一種方便移植性數(shù)據(jù)庫訪問方式。
1.1 配置app.config文件
針對Connection對象所建立的數(shù)據(jù)庫的連接語句,采用配置文件來處理。設(shè)置數(shù)據(jù)庫的連接屬性。方法如下:
在程序設(shè)計中,利用ADO.NET提供的configuration類來讀取。采用System.Configuration.ConfigurationSettings.AppSettings[\"字符串名\"]獲得相關(guān)數(shù)據(jù)庫的參數(shù)。從而提高系統(tǒng)的可讀可修改性。
1.2 設(shè)計通用訪問接口
從代碼的獨(dú)立性考慮,對于數(shù)據(jù)庫的訪問,采用單獨(dú)的類來進(jìn)行描述,有利用提高代碼的重用性和可維護(hù)性。由于ADO.NET對于SQL的查詢語句采用SqlCommand類進(jìn)行描述,同時提供了三種執(zhí)行方式,針對這三種執(zhí)行方式,設(shè)計相關(guān)的通用類。方法如下:
1.2.1 不帶返回結(jié)果集的SQL語句,設(shè)計轉(zhuǎn)換接口
Public static int exec(string str)
{
SqlCommand sqlCommand=new SqlCommand(str);
Return exec(sqlCommand);
}
該類用來接收原始的SQL語句,并執(zhí)行轉(zhuǎn)換。
Public static int exec(SqlCommand sqlCommand)
{
采用ADO.NET提供的數(shù)據(jù)庫訪問方法來執(zhí)行相關(guān)的訪問工作
}
1.2.2 返回SQL語句第1行第1列的語句,設(shè)計轉(zhuǎn)換接口
Public static object execResult(string str)
{
SqlCommand sqlCommand=new SqlCommand(str);
Return execResult(sqlCommand);
}
Public static object execResult(sqlCommand)
{
采用ADO.NET提供的數(shù)據(jù)庫訪問方法來執(zhí)行相關(guān)的訪問工作
}
1.2.3 返回SQL語句的結(jié)果集
Public static DataSetGetDs(string str)
{
SqlCommand sqlCommand=new SqlCommand(str);
Return GetDs(sqlCommand);
}
Public static object DataSetGetDs (sqlCommand)
{
采用ADO.NET提供的數(shù)據(jù)庫訪問方法來執(zhí)行相關(guān)的訪問工作
}
以上方式是在調(diào)用原有的數(shù)據(jù)庫訪問API上進(jìn)行封裝,然后利用ADO.NET提供的數(shù)據(jù)庫訪問方式連接數(shù)據(jù)庫,再調(diào)用相應(yīng)的API。若以后需要進(jìn)一步的加強(qiáng)數(shù)據(jù)庫功能時,只需在該類的基礎(chǔ)上封裝所需的方法即可。
2 結(jié)論
本文針對SQL數(shù)據(jù)庫的操作方式中出現(xiàn)的字符串容易出錯的問題,采用面向?qū)ο蟮某绦蛟O(shè)計思想,設(shè)計了相關(guān)的訪問模式,實(shí)踐證明,這種方式行之有效。
參考文獻(xiàn):
[1] 馬駿.c#網(wǎng)絡(luò)應(yīng)用編程基礎(chǔ)[M].北京:人民郵電出版社,2006.
[2] 陳偉.SQL Server 2005 數(shù)據(jù)庫應(yīng)用與開發(fā)教程[M].北京:清華大學(xué)出版社,2007.