歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

visual basic 第14章 數(shù)據(jù)庫應用基礎

  • 資源ID:119634351       資源大?。?span id="nvk03i5" class="font-tahoma">703.50KB        全文頁數(shù):127頁
  • 資源格式: PPT        下載積分:16積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要16積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

visual basic 第14章 數(shù)據(jù)庫應用基礎

第第1414章章 數(shù)據(jù)庫應用基礎數(shù)據(jù)庫應用基礎w 14.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 w 14.2 VB如何訪問數(shù)據(jù)庫如何訪問數(shù)據(jù)庫 w 14.3 用控件訪問數(shù)據(jù)庫用控件訪問數(shù)據(jù)庫 w 14.4 初識記錄集對象初識記錄集對象w 14.5 用用SQL語句生成記錄集語句生成記錄集 w 14.6 數(shù)據(jù)庫記錄的操作數(shù)據(jù)庫記錄的操作w 14.7 ADO編程模型簡介編程模型簡介 w 14.8 數(shù)據(jù)報表數(shù)據(jù)報表 結(jié)束14.1 14.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 w 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu) w 14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫 w 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫 返回首頁14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(1)(1)在討論關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)之前,先來在討論關(guān)系型數(shù)據(jù)庫的結(jié)構(gòu)之前,先來看一個記載學生基本信息的表格。看一個記載學生基本信息的表格。表表14.1 學生基本信息表學生基本信息表 14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(2)(2)表表14.1是一個由若干行和列組成的二維是一個由若干行和列組成的二維表格,一個關(guān)系型數(shù)據(jù)庫由多個這樣的二維表格,一個關(guān)系型數(shù)據(jù)庫由多個這樣的二維表格組成。關(guān)系型數(shù)據(jù)庫使用以下術(shù)語描述表格組成。關(guān)系型數(shù)據(jù)庫使用以下術(shù)語描述數(shù)據(jù)庫中的信息:數(shù)據(jù)庫中的信息:記錄記錄(Record):):二維表中的每一行為一二維表中的每一行為一條記錄(表條記錄(表14.1中的第一行中的第一行“學號學號”、“姓姓名名”等列標題除外)。一個表中不允許含有等列標題除外)。一個表中不允許含有完全相同的兩條記錄。完全相同的兩條記錄。字段字段(Field):):二維表中的每一列為一二維表中的每一列為一個字段。列標題為字段名(必須惟一)。個字段。列標題為字段名(必須惟一)。14.1.1 14.1.1 關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)關(guān)系型數(shù)據(jù)庫的基本結(jié)構(gòu)(3)(3)數(shù)據(jù)表數(shù)據(jù)表(Table):):二維表中的所有記錄二維表中的所有記錄構(gòu)成數(shù)據(jù)表,簡稱為表。構(gòu)成數(shù)據(jù)表,簡稱為表。數(shù)據(jù)庫數(shù)據(jù)庫(Database):):多個相互關(guān)聯(lián)但多個相互關(guān)聯(lián)但不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫。不同名的數(shù)據(jù)表構(gòu)成數(shù)據(jù)庫。目前較流行的桌面數(shù)據(jù)庫目前較流行的桌面數(shù)據(jù)庫MS Access,大大型網(wǎng)絡數(shù)據(jù)庫型網(wǎng)絡數(shù)據(jù)庫MS SQL Server、Oracle和和Sybase等都屬于關(guān)系型數(shù)據(jù)庫。本章以等都屬于關(guān)系型數(shù)據(jù)庫。本章以MS Access數(shù)據(jù)庫為例討論數(shù)據(jù)庫為例討論VB的數(shù)據(jù)庫應用技的數(shù)據(jù)庫應用技術(shù)。術(shù)。返回首頁返回本節(jié)14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(1)(1)1.啟動數(shù)據(jù)管理器啟動數(shù)據(jù)管理器 在在VB環(huán)境中執(zhí)行【外接程序】菜單中的【可環(huán)境中執(zhí)行【外接程序】菜單中的【可視化數(shù)據(jù)管理器】命令,打開可視化數(shù)據(jù)管理器視化數(shù)據(jù)管理器】命令,打開可視化數(shù)據(jù)管理器(VisData),),如如圖圖14.1所示。所示。2.建立數(shù)據(jù)庫建立數(shù)據(jù)庫 在在VisDataVisData窗口執(zhí)行菜單命令【文件】窗口執(zhí)行菜單命令【文件】|【新建】【新建】|Microsoft Access Ver 7.0 MDBMicrosoft Access Ver 7.0 MDB,打開【選擇要打開【選擇要創(chuàng)建的創(chuàng)建的Microsoft AccessMicrosoft Access數(shù)據(jù)庫】對話框,在對數(shù)據(jù)庫】對話框,在對話框中輸入數(shù)據(jù)庫文件名(如話框中輸入數(shù)據(jù)庫文件名(如“Student.mdbStudent.mdb”)并保存后,并保存后,VisDataVisData窗口的工作區(qū)將出現(xiàn)如窗口的工作區(qū)將出現(xiàn)如圖圖14.214.2所示的【數(shù)據(jù)庫窗口】(此時為空庫,無表)。所示的【數(shù)據(jù)庫窗口】(此時為空庫,無表)。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(2)(2)圖圖14.1 可視化數(shù)據(jù)管理器可視化數(shù)據(jù)管理器 圖圖14.2 數(shù)據(jù)庫窗口數(shù)據(jù)庫窗口 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(3)(3)3.建立數(shù)據(jù)表建立數(shù)據(jù)表 右擊【數(shù)據(jù)庫窗口】空白處,在彈出菜單中選右擊【數(shù)據(jù)庫窗口】空白處,在彈出菜單中選擇【新建表】菜單項,打開如擇【新建表】菜單項,打開如圖圖14.3所示的【表結(jié)所示的【表結(jié)構(gòu)】對話框,輸入表名稱(如構(gòu)】對話框,輸入表名稱(如“基本情況基本情況”)后,)后,單擊【添加字段】按鈕,打開單擊【添加字段】按鈕,打開如圖如圖14.4所示的【添所示的【添加字段】對話框,輸入字段名稱,設置類型和大加字段】對話框,輸入字段名稱,設置類型和大小(僅?。▋HText類型可設置大?。?。添加了所有字段后,類型可設置大?。L砑恿怂凶侄魏?,單擊圖單擊圖14.3中的【生成表】按鈕即可建立數(shù)據(jù)表。中的【生成表】按鈕即可建立數(shù)據(jù)表。在一個庫中可建立多個不同名稱的表。在一個庫中可建立多個不同名稱的表。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(4)(4)圖圖14.3 表結(jié)構(gòu)表結(jié)構(gòu)返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(5)(5)圖圖14.4 添加字段添加字段 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(6)(6)4.添加索引添加索引 為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)檢索的速度。為數(shù)據(jù)表添加索引可以提高數(shù)據(jù)檢索的速度。在在圖圖14.314.3所示的【表結(jié)構(gòu)】對話框中單擊【添加所示的【表結(jié)構(gòu)】對話框中單擊【添加索引】按鈕,打開如索引】按鈕,打開如圖圖14.514.5所示的【添加索引所示的【添加索引 到到 基本情況】對話框。在【名稱】文本框中輸入索基本情況】對話框。在【名稱】文本框中輸入索引名稱(如引名稱(如“sNosNo”),),在【可用字段】列表框中在【可用字段】列表框中選擇需要為其設置索引的字段(如選擇需要為其設置索引的字段(如“學號學號”),),并設置是否為主索引或惟一索引(無重復)。并設置是否為主索引或惟一索引(無重復)。5.輸入記錄輸入記錄 雙擊【數(shù)據(jù)庫窗口】中數(shù)據(jù)表名稱左側(cè)的圖標,雙擊【數(shù)據(jù)庫窗口】中數(shù)據(jù)表名稱左側(cè)的圖標,打開如打開如圖圖14.614.6所示的記錄操作窗口,可以對記錄所示的記錄操作窗口,可以對記錄進行增、刪、修改等操作。進行增、刪、修改等操作。14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(7)(7)圖圖14.5 添加索引添加索引 返回14.1.2 14.1.2 在在VBVB環(huán)境中創(chuàng)建環(huán)境中創(chuàng)建AccessAccess數(shù)據(jù)庫數(shù)據(jù)庫(8)(8)圖圖14.6 記錄操作記錄操作 返回返回首頁返回本節(jié)14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1 1)下面以下面以MS Access 2000為例簡介數(shù)據(jù)庫的創(chuàng)建。為例簡介數(shù)據(jù)庫的創(chuàng)建。1.1.建立數(shù)據(jù)庫建立數(shù)據(jù)庫 啟動啟動MS AccessMS Access,在對話框中選定【空在對話框中選定【空 Access Access 數(shù)據(jù)庫】單選按鈕。單擊【確定】按鈕后,在數(shù)據(jù)庫】單選按鈕。單擊【確定】按鈕后,在【文件新建數(shù)據(jù)庫】對話框中選擇保存位置并輸【文件新建數(shù)據(jù)庫】對話框中選擇保存位置并輸入文件名入文件名,然后單擊【創(chuàng)建】按鈕。然后單擊【創(chuàng)建】按鈕。2.2.建立數(shù)據(jù)表建立數(shù)據(jù)表 新建一個空白數(shù)據(jù)庫后,在新建一個空白數(shù)據(jù)庫后,在MS AccessMS Access主窗口主窗口中將會出現(xiàn)如中將會出現(xiàn)如圖圖14.914.9所示的數(shù)據(jù)庫窗口。在此窗所示的數(shù)據(jù)庫窗口。在此窗口中可以管理口中可以管理AccessAccess數(shù)據(jù)庫的各組成部分。數(shù)據(jù)庫的各組成部分。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(2 2)圖圖14.9 創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(3 3)在數(shù)據(jù)庫窗口中雙擊【使用設計器創(chuàng)建表】圖在數(shù)據(jù)庫窗口中雙擊【使用設計器創(chuàng)建表】圖標,打開如標,打開如圖圖14.1014.10所示的表設計器窗口【表所示的表設計器窗口【表1 1:表】,輸入字段名稱,設置字段的數(shù)據(jù)類型、字表】,輸入字段名稱,設置字段的數(shù)據(jù)類型、字段大小及其他屬性。段大小及其他屬性。若需設置主鍵,可選定擬設為主鍵的字段,若需設置主鍵,可選定擬設為主鍵的字段,然后單擊然后單擊MS Access主窗口工具欄中的【主鍵】圖主窗口工具欄中的【主鍵】圖標標 ,此時,被設為主鍵的字段名左側(cè)會出現(xiàn)鑰,此時,被設為主鍵的字段名左側(cè)會出現(xiàn)鑰匙狀的圖標,同時,【字段屬性】中的【索引】匙狀的圖標,同時,【字段屬性】中的【索引】屬性將自動設為【有屬性將自動設為【有(無重復無重復)】?!俊H孔侄卧O置結(jié)束后,關(guān)閉表設計器窗口,全部字段設置結(jié)束后,關(guān)閉表設計器窗口,系統(tǒng)將顯示如系統(tǒng)將顯示如圖圖14.11所示的對話框,可根據(jù)提示所示的對話框,可根據(jù)提示保存新建的數(shù)據(jù)表并設置表的名稱。保存新建的數(shù)據(jù)表并設置表的名稱。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(4 4)圖圖14.10 設計表的結(jié)構(gòu)設計表的結(jié)構(gòu) 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(5 5)圖圖14.11 保存數(shù)據(jù)表保存數(shù)據(jù)表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(6 6)若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除若需修改數(shù)據(jù)表的結(jié)構(gòu)定義(如添加、刪除或修改字段),可在如圖或修改字段),可在如圖14.12所示的數(shù)據(jù)庫窗口所示的數(shù)據(jù)庫窗口選定數(shù)據(jù)表(如選定數(shù)據(jù)表(如“基本信息基本信息”),然后單擊該窗),然后單擊該窗口工具欄中的【設計】按鈕,打開前面口工具欄中的【設計】按鈕,打開前面圖圖14.10所所示的表設計器窗口進行操作。示的表設計器窗口進行操作。圖圖14.12 修改表結(jié)構(gòu)修改表結(jié)構(gòu) 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(7 7)如果要添加一個新表,可再次雙擊【使用設計如果要添加一個新表,可再次雙擊【使用設計器創(chuàng)建表】圖標,或者單擊工具欄【新建】按鈕,器創(chuàng)建表】圖標,或者單擊工具欄【新建】按鈕,在如圖在如圖14.13所示的【新建表】對話框中選擇【設所示的【新建表】對話框中選擇【設計視圖】后,單擊【確定】按鈕,均可打開如計視圖】后,單擊【確定】按鈕,均可打開如圖圖14.10所示的表設計器窗口。所示的表設計器窗口。圖圖14.13 添加新表添加新表 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(8 8)3.輸入記錄輸入記錄 在數(shù)據(jù)庫窗口中雙擊數(shù)據(jù)表在數(shù)據(jù)庫窗口中雙擊數(shù)據(jù)表,或者選定表后單擊工具欄或者選定表后單擊工具欄中的【打開】按鈕中的【打開】按鈕,打開如圖打開如圖14.14所示的數(shù)據(jù)表窗口所示的數(shù)據(jù)表窗口,向表向表中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系統(tǒng)提示保存中輸入數(shù)據(jù)。輸入結(jié)束后關(guān)閉該窗口,根據(jù)系統(tǒng)提示保存數(shù)據(jù)表。數(shù)據(jù)表。圖圖14.14 輸入記錄輸入記錄 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(9 9)4.建立表間關(guān)聯(lián)關(guān)系建立表間關(guān)聯(lián)關(guān)系 在一個數(shù)據(jù)庫中,一般需要用多個表存放不同在一個數(shù)據(jù)庫中,一般需要用多個表存放不同類別而又相互關(guān)聯(lián)的信息。例如,在學生信息數(shù)類別而又相互關(guān)聯(lián)的信息。例如,在學生信息數(shù)據(jù)庫中用據(jù)庫中用“基本信息基本信息”表存放學生的學號、姓名、表存放學生的學號、姓名、性別等基本情況,用性別等基本情況,用“成績成績”表存放學生的各科表存放學生的各科成績,用成績,用“課程課程”表存放已開的課程。假設這三表存放已開的課程。假設這三個表中含有如個表中含有如表表14.314.3表表14.514.5所示的信息,當需所示的信息,當需要查詢某位學生的一門或幾門課程的成績時,就要查詢某位學生的一門或幾門課程的成績時,就要從上述三個表中獲取數(shù)據(jù)。假如某位學生的學要從上述三個表中獲取數(shù)據(jù)。假如某位學生的學號在最初輸入時有誤,需要修改,則必須確保號在最初輸入時有誤,需要修改,則必須確?!盎拘畔⒒拘畔ⅰ北砗捅砗汀俺煽兂煽儭北碇械谋碇械摹皩W號學號”字段字段進行同步更改。因此,應當為三個表建立必要的進行同步更改。因此,應當為三個表建立必要的關(guān)聯(lián)關(guān)系。關(guān)聯(lián)關(guān)系。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1010)注:注:*為主鍵。為主鍵。返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1111)建立表間關(guān)聯(lián)關(guān)系的前提是兩個表各含有一個關(guān)聯(lián)字段建立表間關(guān)聯(lián)關(guān)系的前提是兩個表各含有一個關(guān)聯(lián)字段(屬性必須相同),其中一個表的關(guān)聯(lián)字段必須被設為主(屬性必須相同),其中一個表的關(guān)聯(lián)字段必須被設為主鍵或具有惟一索引,該表稱為鍵或具有惟一索引,該表稱為“主表主表”,另一個表稱為,另一個表稱為“從表從表”。下面以表下面以表14.3表表14.5為例,簡介建立數(shù)據(jù)表為例,簡介建立數(shù)據(jù)表之間關(guān)聯(lián)關(guān)系的一般步驟。之間關(guān)聯(lián)關(guān)系的一般步驟。單擊單擊Microsoft Access主窗口工具欄【關(guān)系】按鈕主窗口工具欄【關(guān)系】按鈕 ,若數(shù)據(jù)庫中尚未定義任何關(guān)系,則在打開【關(guān)系】窗口的若數(shù)據(jù)庫中尚未定義任何關(guān)系,則在打開【關(guān)系】窗口的同時彈出如同時彈出如圖圖14.1514.15所示的【顯示表】對話框。所示的【顯示表】對話框。在【顯示表】對話框中選定需要建立關(guān)系的表,單擊在【顯示表】對話框中選定需要建立關(guān)系的表,單擊【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如【添加】按鈕,然后單擊【關(guān)閉】按鈕,屏幕顯示如圖圖14.1614.16所示的【關(guān)系】窗口所示的【關(guān)系】窗口。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1212)圖圖14.15 選擇擬建立關(guān)系的表選擇擬建立關(guān)系的表 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1313)圖圖14.16 【關(guān)系】窗口【關(guān)系】窗口 返回14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1414)在【關(guān)系】窗口將【基本信息】表中的【學號】在【關(guān)系】窗口將【基本信息】表中的【學號】字段拖放到【成績】表中的【學號】字段,彈出字段拖放到【成績】表中的【學號】字段,彈出如圖如圖14.17所示的【編輯關(guān)系】對話框。所示的【編輯關(guān)系】對話框。圖圖14.17 編輯關(guān)系編輯關(guān)系 14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1515)在【編輯關(guān)系】對話框中,將【實施參照完整在【編輯關(guān)系】對話框中,將【實施參照完整性】、【級聯(lián)更新相關(guān)字段】和【級聯(lián)刪除相關(guān)性】、【級聯(lián)更新相關(guān)字段】和【級聯(lián)刪除相關(guān)記錄】三個復選框全部選中,單擊【創(chuàng)建】按鈕。記錄】三個復選框全部選中,單擊【創(chuàng)建】按鈕。重復第、步的操作,建立【成績】表中的重復第、步的操作,建立【成績】表中的【課號】字段與【課程】表中的【課號】字段的【課號】字段與【課程】表中的【課號】字段的關(guān)聯(lián)。關(guān)聯(lián)。建立表間關(guān)聯(lián)關(guān)系后的效果如建立表間關(guān)聯(lián)關(guān)系后的效果如圖圖14.18所示。所示。14.1.3 14.1.3 用用MS AccessMS Access建立數(shù)據(jù)庫建立數(shù)據(jù)庫(1616)圖圖14.18 表間關(guān)系表間關(guān)系 返回首頁返回本節(jié)14.2 14.2 VBVB如何訪問數(shù)據(jù)庫(如何訪問數(shù)據(jù)庫(1 1)目前,目前,Visual BasicVisual Basic訪問數(shù)據(jù)庫的主流技術(shù)是訪問數(shù)據(jù)庫的主流技術(shù)是ADOADO。ADOADO是一種基于對象的數(shù)據(jù)訪問接口,在是一種基于對象的數(shù)據(jù)訪問接口,在VBVB中中提供了利用提供了利用ADOADO訪問數(shù)據(jù)庫的兩種主要形式:訪問數(shù)據(jù)庫的兩種主要形式:ADOADO數(shù)數(shù)據(jù)控件據(jù)控件(ADODCADODC)和和ADOADO對象編程模型對象編程模型(ADOADO代碼代碼)。這兩種方式可以單獨使用,也可以同時使用。這兩種方式可以單獨使用,也可以同時使用。使用使用ADOADO數(shù)據(jù)控件的優(yōu)點是代碼少,一個簡單的數(shù)據(jù)控件的優(yōu)點是代碼少,一個簡單的數(shù)據(jù)庫應用程序甚至可以不用編寫任何代碼。它的數(shù)據(jù)庫應用程序甚至可以不用編寫任何代碼。它的缺點是功能簡單,不夠靈活,不能滿足編制較復雜缺點是功能簡單,不夠靈活,不能滿足編制較復雜的數(shù)據(jù)庫應用程序的需要。的數(shù)據(jù)庫應用程序的需要。14.2 14.2 VBVB如何訪問數(shù)據(jù)庫(如何訪問數(shù)據(jù)庫(2 2)使用使用ADOADO對象編程模型的優(yōu)點是具有高度的靈活性,可以對象編程模型的優(yōu)點是具有高度的靈活性,可以編制復雜的數(shù)據(jù)庫應用程序。它的缺點是代碼編寫量較大,編制復雜的數(shù)據(jù)庫應用程序。它的缺點是代碼編寫量較大,對初學者來說有一定困難。對初學者來說有一定困難。無論采用哪種方式訪問數(shù)據(jù)庫,都要經(jīng)歷以下基本步驟:無論采用哪種方式訪問數(shù)據(jù)庫,都要經(jīng)歷以下基本步驟:w 與數(shù)據(jù)庫建立連接,打開數(shù)據(jù)庫。與數(shù)據(jù)庫建立連接,打開數(shù)據(jù)庫。w 從數(shù)據(jù)庫中讀取數(shù)據(jù)并在適當?shù)目丶酗@示。從數(shù)據(jù)庫中讀取數(shù)據(jù)并在適當?shù)目丶酗@示。w 對所獲數(shù)據(jù)進行瀏覽以及增、刪、改等操作,并將修改對所獲數(shù)據(jù)進行瀏覽以及增、刪、改等操作,并將修改后的數(shù)據(jù)存入數(shù)據(jù)庫。后的數(shù)據(jù)存入數(shù)據(jù)庫。在后面的幾節(jié)中將以在后面的幾節(jié)中將以ADOADO數(shù)據(jù)控件為主詳細介紹數(shù)據(jù)控件為主詳細介紹VBVB訪問數(shù)訪問數(shù)據(jù)庫的基本操作。據(jù)庫的基本操作。返回首頁14.3 14.3 用控件訪問數(shù)據(jù)庫用控件訪問數(shù)據(jù)庫w 14.3.1 14.3.1 ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 w 14.3.2 14.3.2 數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件 w 14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)褂脭?shù)據(jù)窗體向?qū)?返回首頁14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1 1)1.1.加載加載ADOADO數(shù)據(jù)控件數(shù)據(jù)控件 ADO ADO數(shù)據(jù)控件屬于數(shù)據(jù)控件屬于ActiveXActiveX控件,加載后才能使用:控件,加載后才能使用:右擊工具箱,在彈出菜單中選擇【部件】菜單項,打開右擊工具箱,在彈出菜單中選擇【部件】菜單項,打開【部 件】對 話 框,在【控 件】選 項 卡 的 列 表 中 選 中【部 件】對 話 框,在【控 件】選 項 卡 的 列 表 中 選 中“Mcrosoft ADO Data Control 6.0Mcrosoft ADO Data Control 6.0”前面的復選框,單擊前面的復選框,單擊【確定】按鈕?!敬_定】按鈕。2.2.連接數(shù)據(jù)庫及指定記錄源連接數(shù)據(jù)庫及指定記錄源 ADO ADO數(shù)據(jù)控件與數(shù)據(jù)庫的連接有數(shù)據(jù)控件與數(shù)據(jù)庫的連接有3 3種方式:數(shù)據(jù)鏈接文件種方式:數(shù)據(jù)鏈接文件(.(.UDL)UDL)、ODBCODBC(DSNDSN)和字符串連接。與和字符串連接。與AccessAccess數(shù)據(jù)庫建立數(shù)據(jù)庫建立連接的常用方式是連接的常用方式是字符串連接字符串連接。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(2 2)通常通過屬性頁一次完成連接數(shù)據(jù)庫和指定記錄通常通過屬性頁一次完成連接數(shù)據(jù)庫和指定記錄源的設置。操作步驟如下:源的設置。操作步驟如下:將將ADOADO數(shù)據(jù)控件數(shù)據(jù)控件(Adodc)Adodc)添加到窗體上,右擊該添加到窗體上,右擊該控件,在彈出菜單中選擇【控件,在彈出菜單中選擇【ADODCADODC屬性】菜單項,屬性】菜單項,打開如打開如圖圖14.2014.20所示的【屬性頁】對話框所示的【屬性頁】對話框。在對話框【通用】選項卡中選擇【使用連接字符在對話框【通用】選項卡中選擇【使用連接字符串】,單擊【生成】按鈕,打開如串】,單擊【生成】按鈕,打開如圖圖14.2114.21所示的所示的【數(shù)據(jù)鏈接屬性】對話框【數(shù)據(jù)鏈接屬性】對話框。在【提供程序】選項卡。在【提供程序】選項卡的列表中選擇的列表中選擇“Microsoft Jet 4.0 OLE DB Microsoft Jet 4.0 OLE DB ProviderProvider”,單擊【下一步】,切換到如單擊【下一步】,切換到如圖圖14.2214.22所示的【連接】選項卡所示的【連接】選項卡。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(3 3)圖圖14.20 14.20 ADODCADODC屬性頁屬性頁 返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(4 4)圖圖14.21 14.21 選擇提供程序選擇提供程序返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(5 5)圖圖14.22 14.22 連接數(shù)據(jù)庫連接數(shù)據(jù)庫返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(6 6)在【連接】選項卡中單擊【在【連接】選項卡中單擊【1.1.選擇或輸入數(shù)據(jù)庫名稱】選擇或輸入數(shù)據(jù)庫名稱】輸入框右側(cè)的輸入框右側(cè)的 按鈕,在彈出的【連接按鈕,在彈出的【連接 Access Access 數(shù)據(jù)庫】數(shù)據(jù)庫】對話框中選擇數(shù)據(jù)庫,單擊【打開】按鈕后返回【連接】選對話框中選擇數(shù)據(jù)庫,單擊【打開】按鈕后返回【連接】選項卡,單擊【測試連接】按鈕,成功后單擊【確定】,完成項卡,單擊【測試連接】按鈕,成功后單擊【確定】,完成連接數(shù)據(jù)庫的設置,返回【屬性頁】對話框。連接數(shù)據(jù)庫的設置,返回【屬性頁】對話框。單擊【屬性頁】對話框【記錄源】選項卡單擊【屬性頁】對話框【記錄源】選項卡,顯示如顯示如圖圖14.2314.23所示的界面所示的界面,在【記錄源】選項卡中設【命令類型】為在【記錄源】選項卡中設【命令類型】為“2-2-adCmdTableadCmdTable”,”,然后在【表或存儲過程名稱】下拉列表然后在【表或存儲過程名稱】下拉列表中選擇數(shù)據(jù)表。也可以設【命令類型】為中選擇數(shù)據(jù)表。也可以設【命令類型】為“1-1-adCmdTextadCmdText”或或“8-8-adCmdUnknownadCmdUnknown”,”,然后在【命令文本然后在【命令文本(SQL)SQL)】文本框中文本框中輸入輸入SQLSQL語句語句(如如圖圖14.2414.24所示所示)。最后單擊【確定】按鈕完成。最后單擊【確定】按鈕完成設置。設置。14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(7 7)圖圖14.23 14.23 用數(shù)據(jù)表作記錄源用數(shù)據(jù)表作記錄源返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(8 8)圖圖14.24 14.24 用用SQLSQL語句作記錄源語句作記錄源返回14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(9 9)上述操作實際上是設置了上述操作實際上是設置了ADOADO數(shù)據(jù)控件的兩個重數(shù)據(jù)控件的兩個重要屬性:要屬性:ConnectionStringConnectionString(連接字符串)屬性用于建立連接字符串)屬性用于建立與數(shù)據(jù)庫的連接。與數(shù)據(jù)庫的連接。RecordSourceRecordSource(記錄源)屬性用于指定記錄源。記錄源)屬性用于指定記錄源。除了使用屬性頁之外,也可以通過屬性窗口或程除了使用屬性頁之外,也可以通過屬性窗口或程序代碼設置這兩個屬性。序代碼設置這兩個屬性。在設置在設置ADOADO數(shù)據(jù)控件與數(shù)據(jù)庫的連接時,有一點數(shù)據(jù)控件與數(shù)據(jù)庫的連接時,有一點要提請讀者注意要提請讀者注意:14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1010)如圖如圖14.2214.22所示所示,在【數(shù)據(jù)鏈接屬性】窗口的【連接】,在【數(shù)據(jù)鏈接屬性】窗口的【連接】選項卡中指定數(shù)據(jù)庫時采用的是絕對路徑。為了保證數(shù)據(jù)庫選項卡中指定數(shù)據(jù)庫時采用的是絕對路徑。為了保證數(shù)據(jù)庫應用程序移植到其它計算機上仍可正常使用,應當采用相對應用程序移植到其它計算機上仍可正常使用,應當采用相對路徑,即在測試連接成功后刪除數(shù)據(jù)庫名稱前面的所有路徑路徑,即在測試連接成功后刪除數(shù)據(jù)庫名稱前面的所有路徑(圖圖14.2214.22輸入框中的反相顯示部分輸入框中的反相顯示部分),僅保留數(shù)據(jù)庫文件名。,僅保留數(shù)據(jù)庫文件名。將數(shù)據(jù)庫文件與工程文件存放在同一文件夾下,在工程啟動將數(shù)據(jù)庫文件與工程文件存放在同一文件夾下,在工程啟動窗體的窗體的InitializeInitialize事件過程中進行路徑初始化處理:事件過程中進行路徑初始化處理:Private Sub Form_Initialize()ChDrive App.Path 設當前驅(qū)動器為工程所在驅(qū)動器設當前驅(qū)動器為工程所在驅(qū)動器 ChDir App.Path 設當前目錄為工程所在目錄設當前目錄為工程所在目錄End Sub14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1111)3.3.用代碼設置或改變記錄源用代碼設置或改變記錄源 ADO ADO數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫的連接,就可以通過設數(shù)據(jù)控件一旦建立了與數(shù)據(jù)庫的連接,就可以通過設置或改變其置或改變其RecordSourceRecordSource(記錄源)屬性訪問數(shù)據(jù)庫中的任記錄源)屬性訪問數(shù)據(jù)庫中的任何表,亦可訪問由一個或多個表中的部分或全部數(shù)據(jù)構(gòu)成的何表,亦可訪問由一個或多個表中的部分或全部數(shù)據(jù)構(gòu)成的記錄集。在實際應用中,常常在程序運行時用代碼設置記錄集。在實際應用中,常常在程序運行時用代碼設置RecordSourceRecordSource屬性及其相關(guān)屬性(如屬性及其相關(guān)屬性(如CommandTypeCommandType),),從而從而使使ADOADO數(shù)據(jù)控件具有更大的靈活性。例如:數(shù)據(jù)控件具有更大的靈活性。例如:用數(shù)據(jù)表名稱作為記錄源:用數(shù)據(jù)表名稱作為記錄源:Adodc1.CommandType=adCmdTable 設置命令類型為數(shù)據(jù)表設置命令類型為數(shù)據(jù)表Adodc1.RecordSource=基本信息基本信息Adodc1.Refresh14.3.1 14.3.1 ADOADO數(shù)據(jù)控件(數(shù)據(jù)控件(1212)用用SQLSQL語句生成的記錄集作為記錄源:語句生成的記錄集作為記錄源:Adodc1.CommandType=adCmdText 設置命令類型為設置命令類型為SQL語句語句Adodc1.RecordSource=SELECT*FROM 基本信息基本信息Adodc1.Refresh 上述兩段代碼的效果相同。有關(guān)上述兩段代碼的效果相同。有關(guān)SQLSQL語言的應用語言的應用將在將在14.514.5節(jié)介紹。節(jié)介紹。注意:設置記錄源后,必須調(diào)用注意:設置記錄源后,必須調(diào)用ADOADO數(shù)據(jù)控件的數(shù)據(jù)控件的RefreshRefresh方法刷新對數(shù)據(jù)庫的訪問。方法刷新對數(shù)據(jù)庫的訪問。返回首頁返回本節(jié)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(1 1)ADO ADO數(shù)據(jù)控件本身不能顯示數(shù)據(jù),需通過綁定具數(shù)據(jù)控件本身不能顯示數(shù)據(jù),需通過綁定具有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)有顯示功能的其他控件顯示數(shù)據(jù),這些控件稱為數(shù)據(jù)綁定控件或數(shù)據(jù)識別據(jù)綁定控件或數(shù)據(jù)識別(感知感知)控件,如文本框、控件,如文本框、DataGridDataGrid、標簽、圖像標簽、圖像(片片)框、列表框、組合框、框、列表框、組合框、復選框等。其中最常用的是復選框等。其中最常用的是DataGridDataGrid和和文本框文本框。1.1.數(shù)據(jù)綁定控件的相關(guān)屬性數(shù)據(jù)綁定控件的相關(guān)屬性 DataSourceDataSource(數(shù)據(jù)源)屬性:指定(綁定到)數(shù)據(jù)源)屬性:指定(綁定到)ADOADO數(shù)據(jù)控件。數(shù)據(jù)控件。DataFieldDataField(數(shù)據(jù)字段)屬性:綁定到特定字段。數(shù)據(jù)字段)屬性:綁定到特定字段。綁定后只要移動指針綁定后只要移動指針,自動將修改內(nèi)容寫入數(shù)據(jù)庫。自動將修改內(nèi)容寫入數(shù)據(jù)庫。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(2 2)2.2.在屬性窗口設置綁定控件屬性在屬性窗口設置綁定控件屬性 在屬性窗口將數(shù)據(jù)綁定控件的在屬性窗口將數(shù)據(jù)綁定控件的DataSourceDataSource屬性設屬性設為為ADOADO數(shù)據(jù)控件(如數(shù)據(jù)控件(如Adodc1Adodc1)。)。如果是單字段顯示如果是單字段顯示控件(如文本框等),還需將控件的控件(如文本框等),還需將控件的DataFieldDataField屬屬性設置為特定字段。性設置為特定字段。DataGridDataGrid控件屬于多字段顯示控件屬于多字段顯示控件,沒有控件,沒有DataFieldDataField屬性。屬性?!纠纠?4.114.1】用】用ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件創(chuàng)建一控件創(chuàng)建一個簡單的數(shù)據(jù)訪問窗體,顯示個簡單的數(shù)據(jù)訪問窗體,顯示14.1.314.1.3節(jié)創(chuàng)建的節(jié)創(chuàng)建的Student2K.mdbStudent2K.mdb數(shù)據(jù)庫中數(shù)據(jù)庫中“基本信息基本信息”表的內(nèi)容。表的內(nèi)容。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(3 3)右擊工具箱,在彈出菜單中選擇【部件】命令,右擊工具箱,在彈出菜單中選擇【部件】命令,在 對 話 框【控 件】選 項 卡 的 列 表 中 選 中在 對 話 框【控 件】選 項 卡 的 列 表 中 選 中“Microsoft ADO Data Control 6.0Microsoft ADO Data Control 6.0”和和“Microsoft DataGrid 6.0Microsoft DataGrid 6.0”,單擊【確定】。選單擊【確定】。選擇工具箱中新增加的擇工具箱中新增加的ADOADO數(shù)據(jù)控件和數(shù)據(jù)控件和DataGridDataGrid控件控件 ,將其添加到窗體上,默認名稱分別為將其添加到窗體上,默認名稱分別為Adodc1Adodc1和和DataGrid1DataGrid1。按按14.3.114.3.1小節(jié)所述步驟建立小節(jié)所述步驟建立Adodc1Adodc1與與Student2K.mdbStudent2K.mdb數(shù)據(jù)庫的連接,并設數(shù)據(jù)庫的連接,并設Adodc1Adodc1的記錄的記錄源為源為“基本信息基本信息”表。將表。將DataGrid1DataGrid1控件的控件的DataSourceDataSource屬性設為屬性設為Adodc1Adodc1。程序運行效果如圖程序運行效果如圖14.2514.25所示。所示。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(4 4)圖圖14.25 14.25 使用使用DataGridDataGrid控件控件14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(5 5)3.3.用代碼設置綁定控件屬性用代碼設置綁定控件屬性 程序運行時可以動態(tài)地設置數(shù)據(jù)綁定控件的屬性。程序運行時可以動態(tài)地設置數(shù)據(jù)綁定控件的屬性。例如:例如:Set Text1.DataSource=Adodc1Text1.DataField=姓名姓名Set DataGrid1.DataSource=Adodc1 說明:說明:DataSourceDataSource是對象類型的屬性,必須用是對象類型的屬性,必須用SetSet語句為其賦值。語句為其賦值。14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(6 6)4.4.不用綁定方法如何顯示和處理數(shù)據(jù)不用綁定方法如何顯示和處理數(shù)據(jù) 不使用綁定的方法處理數(shù)據(jù)是指不對數(shù)據(jù)顯示控不使用綁定的方法處理數(shù)據(jù)是指不對數(shù)據(jù)顯示控件的件的DataSourceDataSource和和DataFieldDataField屬性進行設置,而是屬性進行設置,而是通過代碼將當前記錄某個字段的值顯示在控件(如通過代碼將當前記錄某個字段的值顯示在控件(如文本框)中。這種方法比較靈活,缺點是代碼編寫文本框)中。這種方法比較靈活,缺點是代碼編寫量較大,其中涉及到記錄集對象的操作。量較大,其中涉及到記錄集對象的操作。(1 1)字段內(nèi)容的顯示)字段內(nèi)容的顯示控件屬性控件屬性=記錄集記錄集(“字段字段”)例如:例如:Text1.Text=Adodc1.Recordset(學號學號)Text2.Text=Adodc1.Recordset(姓名姓名)14.3.2 14.3.2 數(shù)據(jù)綁定控件(數(shù)據(jù)綁定控件(7 7)每當記錄指針移動時均需對控件屬性重新賦值。若需要顯每當記錄指針移動時均需對控件屬性重新賦值。若需要顯示的字段較多,可以編制一個自定義過程用于記錄指針移動示的字段較多,可以編制一個自定義過程用于記錄指針移動時顯示各字段內(nèi)容。時顯示各字段內(nèi)容。(2 2)為字段賦值)為字段賦值記錄集記錄集(“字段字段”)=)=控件屬性控件屬性例如:例如:Adodc1.Recordset(學號學號)=Text1.TextAdodc1.Recordset(姓名姓名)=Text2.TextAdodc1.Recordset.Update 說明:為字段賦值后,應調(diào)用記錄集的說明:為字段賦值后,應調(diào)用記錄集的UpdateUpdate方法更新數(shù)方法更新數(shù)據(jù)庫。據(jù)庫。返回首頁返回本節(jié)14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 1)使用使用“數(shù)據(jù)窗體向?qū)?shù)據(jù)窗體向?qū)А笨梢钥焖賱?chuàng)建一個數(shù)據(jù)訪問窗體??梢钥焖賱?chuàng)建一個數(shù)據(jù)訪問窗體。執(zhí)行【工程】菜單中【添加窗體】命令執(zhí)行【工程】菜單中【添加窗體】命令,打開如打開如圖圖14.2614.26所所示的對話框,在【新建】選項卡中選擇【示的對話框,在【新建】選項卡中選擇【VBVB數(shù)據(jù)窗體向?qū)А浚瑪?shù)據(jù)窗體向?qū)А?,單擊【打開】按鈕后將會出現(xiàn)向?qū)У牡谝粋€對話框。單擊【打開】按鈕后將會出現(xiàn)向?qū)У牡谝粋€對話框。如果是創(chuàng)建單表訪問窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€步驟:如果是創(chuàng)建單表訪問窗體,數(shù)據(jù)窗體向?qū)⒂衅邆€步驟:【介紹】、【數(shù)據(jù)庫類型】、【數(shù)據(jù)庫】、【窗體【介紹】、【數(shù)據(jù)庫類型】、【數(shù)據(jù)庫】、【窗體(FormForm)】、【)】、【記錄源】、【控件選擇】和【完成】,可根記錄源】、【控件選擇】和【完成】,可根據(jù)向?qū)崾静僮?。?jù)向?qū)崾静僮鳌D圖14.2714.27是利用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體,數(shù)據(jù)庫為是利用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體,數(shù)據(jù)庫為Student2K.mdbStudent2K.mdb,記錄源為記錄源為“基本信息基本信息”表中的所有字段。表中的所有字段。向?qū)е械钠渌襟E均采用默認設置。向?qū)е械钠渌襟E均采用默認設置。14.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 2)圖圖14.26 14.26 啟動數(shù)據(jù)窗體向?qū)訑?shù)據(jù)窗體向?qū)Х祷?4.3.3 14.3.3 使用數(shù)據(jù)窗體向?qū)Вㄊ褂脭?shù)據(jù)窗體向?qū)В? 3)圖圖14.27 14.27 用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體用數(shù)據(jù)窗體向?qū)?chuàng)建的數(shù)據(jù)窗體返回返回首頁返回本節(jié)14.4 14.4 初識記錄集對象(初識記錄集對象(1 1)無論是使用無論是使用ADOADO數(shù)據(jù)控件數(shù)據(jù)控件,還是使用還是使用ADOADO對象編程對象編程模型,都會涉及到記錄集對象。因此模型,都會涉及到記錄集對象。因此,在進一步討在進一步討論數(shù)據(jù)庫操作之前論數(shù)據(jù)庫操作之前,有必要初步了解一下記錄集對有必要初步了解一下記錄集對象。象。請看下面來自學生數(shù)據(jù)庫的幾個集合:請看下面來自學生數(shù)據(jù)庫的幾個集合:取取“基本信息基本信息”表中所有學生的記錄構(gòu)成一個集表中所有學生的記錄構(gòu)成一個集合;合;取取“基本信息基本信息”表中所有男生的記錄構(gòu)成一個集表中所有男生的記錄構(gòu)成一個集合;合;取取“基本信息基本信息”表中張三的學號和姓名,根據(jù)其表中張三的學號和姓名,根據(jù)其學號取學號取“成績成績”表(含學號、課號和分數(shù)三個字段)表(含學號、課號和分數(shù)三個字段)中該學生的各科成績構(gòu)成一個集合。中該學生的各科成績構(gòu)成一個集合。14.4 14.4 初識記錄集對象(初識記錄集對象(2 2)以上幾個集合都是以上幾個集合都是“記錄的集合記錄的集合”,由此得出以下概念:,由此得出以下概念:將數(shù)據(jù)庫中一個或多個表中的部分或全部數(shù)據(jù)構(gòu)成一個將數(shù)據(jù)庫中一個或多個表中的部分或全部數(shù)據(jù)構(gòu)成一個“記 錄 的 集 合記 錄 的 集 合”,這 個 集 合 就 稱 為,這 個 集 合 就 稱 為“記 錄 集記 錄 集”(RecordsetRecordset)。)。記錄集由行(記錄)和列(字段)構(gòu)成。記錄集由行(記錄)和列(字段)構(gòu)成。若將記錄集看作一個對象,這個對象就是記錄集對象。記若將記錄集看作一個對象,這個對象就是記錄集對象。記錄集對象具有特定的屬性、方法和事件。錄集對象具有特定的屬性、方法和事件。ADO ADO數(shù)據(jù)控件的數(shù)據(jù)控件的RecordsetRecordset屬性代表屬于本控件的記錄集屬性代表屬于本控件的記錄集對象。對象。記錄集對象是記錄集對象是ADOADO中的一個功能強大的對象,對數(shù)據(jù)庫的中的一個功能強大的對象,對數(shù)據(jù)庫的絕大部分操作,如記錄指針的移動,記錄的查找、添加、絕大部分操作,如記錄指針的移動,記錄的查找、添加、刪除和修改等,都是針對記錄集對象進行的。刪除和修改等,都是針對記錄集對象進行的。返回首頁14.5 14.5 用用SQLSQL語句生成記錄集語句生成記錄集w 14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 w 14.5.2 14.5.2 限定記錄集篩選條件限定記錄集篩選條件 w 14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句 w 14.5.4 14.5.4 記錄排序記錄排序 w 14.5.5 14.5.5 記錄分組記錄分組 w 14.5.6 14.5.6 過濾重復記錄過濾重復記錄 返回首頁14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (1 1)1.1.最簡單的查詢語句最簡單的查詢語句 下面的下面的SQLSQL語句是最簡單的查詢形式,生成的記語句是最簡單的查詢形式,生成的記錄集包含整個表的全部數(shù)據(jù):錄集包含整個表的全部數(shù)據(jù):SELECT*FROM 基本信息基本信息 其中其中“*”指表中所有字段指表中所有字段(列列)。FROMFROM子句用于子句用于指定數(shù)據(jù)表。指定數(shù)據(jù)表。2.2.SELECTSELECT語句的基本語法語句的基本語法 在實際應用中,往往需要從一個或多個表中選在實際應用中,往往需要從一個或多個表中選擇符合特定條件的記錄構(gòu)成記錄集,因此應對擇符合特定條件的記錄構(gòu)成記錄集,因此應對SELECTSELECT語句的語法有一定的了解。以下是語句的語法有一定的了解。以下是SELECTSELECT語語句的基本語法。句的基本語法。14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (2 2)SELECT SELECT*|字段列表字段列表 FROM FROM 表名表名 WHERE WHERE 查詢條件查詢條件 GROUP BY GROUP BY 分組字段分組字段 HAVING HAVING 分組條件分組條件 ORDER BY ORDER BY 排排序字段序字段 ASC|DESCASC|DESC說明說明:*|字段列表字段列表:“*”表示所有字段;表示所有字段;“字段列字段列表表”指定字段,多個字段間用逗號分隔,來自不同指定字段,多個字段間用逗號分隔,來自不同表的同名字段前須加表的名稱和圓點表的同名字段前須加表的名稱和圓點。FROM FROM子句:指定表。若指定多個表子句:指定表。若指定多個表,用逗號分隔。用逗號分隔。WHERE WHERE子句:指定選擇記錄的條件。子句:指定選擇記錄的條件。14.5.1 14.5.1 最簡單的最簡單的SQLSQL語句語句 (3 3)GROUP BYGROUP BY及及HAVINGHAVING子句:分組過濾,將分組字段子句:分組過濾,將分組字段中同值記錄合并為一條記錄。中同值記錄合并為一條記錄。ORDER BYORDER BY:排序。排序。ASCASC為升序為升序(默認默認);DESCDESC為降為降序。序?!纠纠?4.214.2】選擇】選擇“基本信息基本信息”表中的表中的“學號學號”和和“姓名姓名”字段,字段,“成績成績”表中的表中的“課號課號”和和“分數(shù)分數(shù)”字段構(gòu)成記錄集。字段構(gòu)成記錄集。SELECT 基本信息基本信息.學號學號,姓名姓名,課號課號,分數(shù)分數(shù) FROM 基本信息基本信息,成績成績 WHERE 基本信息基本信息.學號學號=成成績績.學號學號 返回首頁返回本節(jié)14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(1 1)在在SELECTSELECT語句的各子句中,語句的各子句中,WHEREWHERE子句使用頻率子句使用頻率最高。該子句指明查詢的條件。在最高。該子句指明查詢的條件。在WHEREWHERE子句中可子句中可使用各種關(guān)系使用各種關(guān)系(比較比較)運算符表示篩選記錄的條件。運算符表示篩選記錄的條件。FROM 選表選表 表 1 表 2 表 i SELECT 選字段選字段 字段 1 字段 2 字段 j 生成生成 記錄集記錄集 記錄 1 記錄 2 記錄 k WHERE 限定條件限定條件 圖14.28 用SQL語句生成記錄集 14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(2 2)【例【例14.314.3】選擇】選擇“基本信息基本信息”表中所有男生構(gòu)成表中所有男生構(gòu)成記錄集:記錄集:SELECT*FROM 基本信息基本信息 WHERE 性別性別=男男 【例【例14.414.4】取】取“基本信息基本信息”表中張三的學號和姓表中張三的學號和姓名,根據(jù)其學號取名,根據(jù)其學號取“成績成績”表中該學生的各科成績表中該學生的各科成績構(gòu)成記錄集:構(gòu)成記錄集:SELECT 基本信息基本信息.學號學號,姓名姓名,課號課號,分數(shù)分數(shù) FROM 基本信基本信息息,成績成績 WHERE 基本信息基本信息.學號學號=成績成績.學號學號 AND 姓名姓名=張三張三 在在WHEREWHERE子句中使用子句中使用LikeLike運算符可實現(xiàn)模糊查詢。運算符可實現(xiàn)模糊查詢。SQLSQL語句中語句中LikeLike運算符的通配符是運算符的通配符是“%”“%”,可代表任,可代表任何字符,字符數(shù)不限。何字符,字符數(shù)不限。14.5.2 14.5.2 限定記錄集篩選條件(限定記錄集篩選條件(3 3)【例【例14.514.5】用】用LikeLike運算符進行模糊查詢。運算符進行模糊查詢。查詢所有姓查詢所有姓“張張”的學生:的學生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like 張張%查詢所有姓名中含有查詢所有姓名中含有“小小”字的學生:字的學生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like%小小%查詢姓名最后一個字為查詢姓名最后一個字為“剛剛”的所有學生:的所有學生:SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 like%剛剛返回首頁返回本節(jié)14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(1)(1)在程序代碼中,在程序代碼中,SQLSQL語句必須以字符串形式提供。例如:語句必須以字符串形式提供。例如:Adodc1.RecordSource=SELECT*FROM 基本信息基本信息 如果如果SQLSQL語句中含有字符串常量,必須將字符串常量放在語句中含有字符串常量,必須將字符串常量放在一對單引號中。一對單引號中。【例【例14.614.6】在】在SQLSQL語句中引用字符串常量。語句中引用字符串常量。Dim strSQL As StringstrSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=男男Adodc1.RecordSource=strSQL 如果如果SQLSQL語句中引用了語句中引用了StringString型變量或其他控件的字符串型變量或其他控件的字符串類型的屬性(如文本框的類型的屬性(如文本框的TextText屬性),應當采用下面的引屬性),應當采用下面的引用形式(注意單引號的位置):用形式(注意單引號的位置):.&.&字符串變量或控件屬性字符串變量或控件屬性&.&.14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(2)(2)【例【例14.714.7】在】在SQLSQL語句中引用字符串變量。語句中引用字符串變量。Dim strSQL As String,strSex As StringstrSex=男男strSQL=SELECT*FROM 基本信息基本信息 WHERE 性別性別=_&strSex&Adodc1.RecordSource=strSQL【例例14.814.8】在】在SQLSQL語句中引用控件的字符串類型的屬性。語句中引用控件的字符串類型的屬性。Dim strSQL As StringText1.Text=張張strSQL=SELECT*FROM 基本信息基本信息 WHERE 姓名姓名 Like _&Text1.Text&%Adodc1.RecordSource=strSQL14.5.3 14.5.3 在在VBVB程序中如何使用程序中如何使用SQLSQL語句語句(3)(3)如果如果SQLSQL語句中引用了非字符串類型的變量或控語句中引用了非字符串類型的變量或控件屬性,不使用單引號。件屬性,不使用單引號。【例【例14.914.9】在】在SQLSQL語句中引用非字符串類型的變量。語句中引用非字符串類型的變量。Dim strSQL As String,intGrade As IntegerintGrade=60strSQL=SELECT*FROM 成績成績 WHERE 分數(shù)分數(shù)=_&intGrade&AND 課程課程=英語英語Adodc1.RecordSource=strSQL返回首頁返回本節(jié)14.5.4 14.5.4 記錄排序記錄排序 用用ORDER BYORDER BY子句(子句(ASCASC為升序,為升序,DESCDESC為降序)為降序)對記錄排序。例如:對記錄排序。例如:SELECT*FROM 基本信息基本信息 ORDER BY 學號學號 ASCSELECT*FROM 基本信息基本信息 ORDER BY 姓名姓名 DESC返回首頁返回本節(jié)14.5.5 14.5.5 記錄分組記錄分組 用用GROUP BYGROUP BY子句將指定字段中數(shù)值相等的多條記錄子句將指定字段中數(shù)值相等的多條記錄合并為一條記錄??捎煤喜橐粭l記錄。可用HAVINGHAVING子句附加條件。子句附加條件?!纠纠?4.1014.10】以】以“班級班級”作為分組字段,查詢各班作為分組字段,查詢各班女生人數(shù)。女生人數(shù)。SELECT 班級班級,Count(*)AS 女生女生 FROM 基本基本情況情況 GROUP BY 班級班級,性別性別 HAVING 性別性別=女女說明:上面的語句中說明:上面的語句中Count(Count(*)表示統(tǒng)計記錄總數(shù),表示統(tǒng)計記錄總數(shù),ASAS子句表示存放統(tǒng)計結(jié)果的臨時字段別名。其他子句表示存放統(tǒng)計結(jié)果的臨時字段別名。其他SQLSQL函數(shù)還有函數(shù)還有SumSum、AvgAvg、MaxMax和和MinMin等。等。返回首頁返回本節(jié)14.5.6 14.5.6 過濾重復記錄(過濾重復記錄(1 1)過濾重復記錄是指忽略字段值相同的重復記錄。過濾重復記錄是指忽略字段值相同的重復記錄。例如,假定學籍表中含有例如,假定學籍表中含有400400名學生的信息,這些名學生的信息,這些學生來自學生來自1010個班級,現(xiàn)在要查詢學籍表中的個班級,現(xiàn)在要查詢學籍表中的“班級班級”字段生成

注意事項

本文(visual basic 第14章 數(shù)據(jù)庫應用基礎)為本站會員(少***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!