红皮书验收总结
通過學習紅皮書,對數據庫的理解又加深了一點。前三個實例可以說是講了3種連接數據庫的方法:
實例1:
?
實例2:建立ODBC數據源 用ADO訪問數據庫
實例3:使用ADO Data控件 綁定數據庫
?
實例4驗收的過程中出現了問題,如下:
一開始我是懵逼的,自己運行的時候沒什么錯誤啊。記得錯誤發生時師父在文本框中輸入了10,要查詢10條記錄。首先看這個錯誤的描述,說的是“BOF或EOF中有一個是‘真’,或者當前記錄已被刪除,所需的操作需要一個當前的記錄”,說明此時里面是沒有數據的。但是我覺得肯定沒有刪除記錄的操作,所以不是這個原因;那再回頭看第一個原因,這個我是不太懂的,然后回去看書,發現:
BOF屬性:如果當前的記錄位置在第一條記錄之前,則返回 true,否則返回 fasle。
EOF 屬性:如果當前記錄的位置在最后的記錄之后,則返回 true,否則返回 fasle。
錯誤顯示其中有一個是“真”,當時師傅點擊的是下一頁,那么就是說當前的位置就是最后的記錄之后,這說明下一頁沒有數據所以顯示不了。為什么會這樣呢?原來是因為我的數據庫中就只有8條記錄,難怪要顯示10條點擊下一頁時顯示不出來。這是我的一種最簡單的解決辦法,但是后來上網查的時候發現并不是如此簡單,現在想想如果數據庫真的只有8條記錄,那該怎么辦?從CSDN上查了些資料,大體上有兩種解決辦法:
第一種:進行錯誤處理,當遇到此錯誤(3021)時,可以跳過該錯誤,直接進行下一步。
?
第二種:根據上述原理,那么我們可以將代碼稍作修改,不做錯誤處理,而是當程序運行的錯誤考慮在內,當遇到這種情況時,用一個if語句,讓程序直接進行下一步即可,與上述方法異曲同工!
?
最后師傅在細節上提醒了我不少東西。首先就是格式問題,學了這么久的VB,寫代碼的時候格式還是不太整齊,有些不美觀啊;然后是實例2中當顯示是最后一條記錄時,師傅要求再次點擊下一條時可以顯示第一條記錄,這個并不難,加一個判斷即可:
?
然后擴展一下,從最后一頁可以再跳到第一頁,與之前的是差不多的,加個判斷就能循環顯示:
本來我是沒有敲紅框里的兩行代碼,但是我發現這樣子的話,第一頁和最后一頁的數據是顯示不出來的,只好又給加上了。
?
還有在實例4中按課本上的代碼寫,最后查詢出來的數據會顯示一條空行,方法很簡單,只需令MSFlexGrid.Rows=1就可以了。實例5中,?最好加一個條件判斷,判斷輸入的用戶名和身份是否為空:
還有一些基礎的問題:
VB中Option Explicit:一般在模塊級別中使用,且必須寫在模塊的所有過程之前,強制顯式聲明模塊中的所有變量。它的作用是:聲明所有變量都需要先定義才能使用,否則程序在使用了未經定義的變量時就會報錯,這樣,可以避免變量因名稱拼寫等錯誤帶來的結果錯誤,并且“Option Explicit”可以加快程序的運行速度,它節省了在程序運行時動態分配變量存儲空間的時間。
Dosave的意思是保存對之前的修改。
使運行后文本框內容不能隨意改動:
username.Enabled = False,
password.Enabled = False。
控件隨窗體一起等比例擴大縮小,這個思路是在form的load和resize事件里設置每個控件的長寬,都用form1的長寬表示,比如command1.width=1/20*me.width 這樣當當窗體寬度改變后按鈕的寬度始終是它高度的1/20。
感嘆號? 用于強制從左至右而不是從右至左填充占位符。必須在任何格式字符串的開頭使用此字符。
百分號? %表示可匹配任意類型和長度的字符,如果是中文,可以使用兩個百分號即%%。
?
總結
- 上一篇: VB课本基础知识总结
- 下一篇: 数据库入门经典基础总结