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