經(jīng)驗(yàn)之談VB.NET數(shù)據(jù)庫(kù)
在VB的開(kāi)發(fā)環(huán)境中,可以使用三種數(shù)據(jù)庫(kù)訪問(wèn)方式,它們分別是:數(shù)據(jù)訪問(wèn)對(duì)象(DAO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO)和ADO對(duì)象模型。VB.NET數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)是在工作總結(jié)出來(lái)的。結(jié)合近幾年的開(kāi)發(fā)經(jīng)驗(yàn),給出一些開(kāi)發(fā)經(jīng)驗(yàn)和小技巧,以供參考:
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)一:如果數(shù)據(jù)量不大,而且要求開(kāi)發(fā)周期短的情況,建議使用DAO+Access雖然DAO功能并不強(qiáng)大,但是其對(duì)Jet引擎進(jìn)行了加速優(yōu)化處理,所以這種搭配應(yīng)該是比較好的選擇。
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)二:RDO當(dāng)前已經(jīng)用的很少了,一般用ADO來(lái)替代。
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)三:(本經(jīng)驗(yàn)很重要)使用ADO開(kāi)發(fā)時(shí),連接數(shù)據(jù)庫(kù)的方式有三種(前面已經(jīng)敘述了),其中DSN需要用戶首先使用要將所要操縱的數(shù)據(jù)庫(kù)設(shè)置為數(shù)據(jù)庫(kù)源并給其命名。方法是在控制面板->管理工具->數(shù)據(jù)源(ODBC)下面進(jìn)行配置。比如設(shè)置的數(shù)據(jù)源名稱為data,那么可以通過(guò)下面幾行代碼來(lái)連接數(shù)據(jù)庫(kù):
- Dim conn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- '連接數(shù)據(jù)庫(kù)
- conn.Open "dsn=data"
- '打開(kāi)數(shù)據(jù)源(即選定操作的數(shù)據(jù)對(duì)象)
- rs.Open SQL語(yǔ)句, conn
但是如果是使用ODBC和OLEDB的方式進(jìn)行連接,那么大家一定知道在連接字符串上那一長(zhǎng)串的代碼,不要說(shuō)對(duì)于初學(xué)者,就是對(duì)于那些經(jīng)驗(yàn)豐富的程序員來(lái)說(shuō),也很難記住這一串代碼。那么如何可以記住這一串代碼呢?其實(shí),方法很簡(jiǎn)單,只要添加一個(gè)ADO Data控件,然后在其屬性框中使用向?qū)нM(jìn)行設(shè)置后,那么最后向?qū)Ь蜁?huì)自動(dòng)生成一段ConnectionString,只需要將這一行代碼拷貝下來(lái)然后放到conn.open之后的連接字符串參數(shù)的位置上就可以了。這條經(jīng)驗(yàn)希望讀者能夠記住,實(shí)際開(kāi)發(fā)中很實(shí)用。
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)四:前面講到手動(dòng)設(shè)置ODBC數(shù)據(jù)源,這里可以通過(guò)程序來(lái)進(jìn)行動(dòng)態(tài)設(shè)置。首先要清楚的是ODBC的詳細(xì)信息全部存放在注冊(cè)表的下述鍵值內(nèi):"HKEY_LOCAL_MACHINE\SOFTWARE\ODBC",通過(guò)調(diào)用Win32函數(shù)WriteProfileString來(lái)對(duì)相應(yīng)的鍵值進(jìn)行修改即可達(dá)到目的。
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)五:通常將數(shù)據(jù)庫(kù)的連接代碼和資源釋放代碼放入各自特定的函數(shù)里面,因?yàn)橐话愦笠稽c(diǎn)的程序里需要經(jīng)常對(duì)這兩個(gè)功能模塊進(jìn)行調(diào)用,這樣做就可以提高效率,當(dāng)然很多時(shí)候都需要寫(xiě)成連接池的形式。
VB.NET數(shù)據(jù)庫(kù)經(jīng)驗(yàn)六:使用VB在SQL中處理含單引號(hào)的字符串時(shí),對(duì)字符串?dāng)?shù)據(jù)都用單引號(hào)引起來(lái),如:
- Select * from MyTable Where ID='FirstID'
若其中的FirstID為First'ID,即中間多出一個(gè)單引號(hào),則上述寫(xiě)法將導(dǎo)致錯(cuò)誤,解決的辦法是將字符串中的每一個(gè)單引號(hào)用兩雙引號(hào)替換,下面的函數(shù)StrToSQL完成該功能,并用單引號(hào)將處理后的字符串引起來(lái):
- Private Function StrToSQL(ByVal strValue As String) As String
- StrToSQL = "'" + Replace(strValue, "'", "''") + "'"
- End Function
在寫(xiě)SQL時(shí)如有字符串?dāng)?shù)據(jù),不管其中有沒(méi)有單引號(hào),都可以這樣使用:
- strValue="First'Id"
【編輯推薦】