版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10章數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)10.1.1數(shù)據(jù)庫(kù)基本概念1.?dāng)?shù)據(jù)數(shù)據(jù)(Data)是對(duì)客觀事物特征的一種抽象的、符號(hào)化的表示,它可以表現(xiàn)為數(shù)字、文字、圖形、聲音、動(dòng)畫等多種形式。數(shù)據(jù)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象。10.1數(shù)據(jù)庫(kù)基礎(chǔ)2.?dāng)?shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)(DataBase,簡(jiǎn)稱DB)是數(shù)據(jù)的集合,是存儲(chǔ)數(shù)據(jù)的“倉(cāng)庫(kù)”。數(shù)據(jù)庫(kù)中的數(shù)據(jù)是以一定的組織形式存放在計(jì)算機(jī)存儲(chǔ)介質(zhì)上的相互關(guān)聯(lián)的數(shù)據(jù)。數(shù)據(jù)庫(kù)文件與應(yīng)用文件分開(kāi),具有數(shù)據(jù)獨(dú)立性。它可以為多個(gè)應(yīng)用程序所使用,以實(shí)現(xiàn)數(shù)據(jù)共享的目的。3.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS)是專門用于管理、維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)的系統(tǒng)軟件。它的主要功能是維護(hù)數(shù)據(jù)庫(kù)、接收和完成用戶程序或命令提出的訪問(wèn)數(shù)據(jù)的各種請(qǐng)求,如檢索、存儲(chǔ)數(shù)據(jù)等。4.?dāng)?shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)(DataBaseSystem,簡(jiǎn)稱DBS)是指組織數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)的管理系統(tǒng),是幫助用戶使用數(shù)據(jù)庫(kù)的工具。它是由計(jì)算機(jī)系統(tǒng)中引進(jìn)數(shù)據(jù)庫(kù)后的系統(tǒng)構(gòu)成,主要包括用戶、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)管理系統(tǒng)三方面。關(guān)系型數(shù)據(jù)庫(kù)模型將數(shù)據(jù)用表的集合來(lái)表示。通過(guò)建立簡(jiǎn)單表之間的關(guān)系來(lái)定義結(jié)構(gòu)。在關(guān)系型數(shù)據(jù)庫(kù)中,行被稱為記錄,列被稱為字段,表則是相關(guān)信息的邏輯組。關(guān)系模型不僅功能強(qiáng)大,而且還提供了結(jié)構(gòu)化查詢語(yǔ)言(StructureQueryLanguage,SQL)的標(biāo)準(zhǔn)接口,因而關(guān)系型數(shù)據(jù)庫(kù)模型已經(jīng)成為數(shù)據(jù)庫(kù)設(shè)計(jì)的標(biāo)準(zhǔn)。MicrosoftAccess、SQLServer和Oracle都是基于關(guān)系模型的數(shù)據(jù)庫(kù)管理系統(tǒng)。10.1.2關(guān)系型數(shù)據(jù)庫(kù)對(duì)于關(guān)系型數(shù)據(jù)庫(kù),經(jīng)常使用數(shù)據(jù)表、記錄、字段、關(guān)鍵字、索引等術(shù)語(yǔ)1.?dāng)?shù)據(jù)表(Table)數(shù)據(jù)表是一組相關(guān)聯(lián)的數(shù)據(jù)按行和列排列形成的二維表格,簡(jiǎn)稱為表。在數(shù)據(jù)庫(kù)理論中常用來(lái)表示一個(gè)實(shí)體,每個(gè)數(shù)據(jù)表必須有一個(gè)表名,一個(gè)數(shù)據(jù)庫(kù)一般由多個(gè)數(shù)據(jù)表組成,各個(gè)數(shù)據(jù)表之間一般應(yīng)存在某種關(guān)系。2.記錄(Record)數(shù)據(jù)表中的每一行稱為一條記錄。記錄是字段值的集合,所有用戶對(duì)數(shù)據(jù)的訪問(wèn)對(duì)象是記錄。因此,如果想對(duì)某個(gè)數(shù)據(jù)項(xiàng)進(jìn)行訪問(wèn),必須首先進(jìn)行記錄定位,在一個(gè)數(shù)據(jù)表中不允許存在兩條完全相同的記錄,即表中的記錄必須是唯一的。3.字段(Field)數(shù)據(jù)表中的每一列稱為一個(gè)字段。數(shù)據(jù)表是由其包含的所有字段構(gòu)成的,每個(gè)字段用來(lái)描述它包含的數(shù)據(jù)。在創(chuàng)建數(shù)據(jù)表時(shí),必須為每個(gè)字段起一個(gè)名稱,一般稱為字段名,同時(shí)需要為每個(gè)字段分配一個(gè)數(shù)據(jù)類型、最大長(zhǎng)度和其它屬性。同樣,表中的字段也應(yīng)該是唯一的。4.主鍵(PrimaryKey)如果數(shù)據(jù)表中某個(gè)字段值或若干個(gè)字段值的集合能唯一確定一條記錄,則稱該字段或字段的集合為該數(shù)據(jù)表的關(guān)鍵字。在一個(gè)數(shù)據(jù)表中,關(guān)鍵字可能存在多個(gè),但需選定其中一個(gè)作為主關(guān)鍵字,即稱之為主鍵。對(duì)于數(shù)據(jù)表中的每條記錄來(lái)說(shuō),主鍵的值必須唯一。5.索引(Index)為了提高數(shù)據(jù)的訪問(wèn)效率,可以對(duì)數(shù)據(jù)表建立索引,從而改變表中記錄的邏輯順序。索引即對(duì)數(shù)據(jù)表中的某個(gè)或幾個(gè)字段的值按某種特定的順序進(jìn)行排列。在VisualBasic中利用索引目的是加快數(shù)據(jù)檢索速度。索引不改變表中記錄的物理順序。在VisualBasic集成開(kāi)發(fā)環(huán)境中,可以使用可視化數(shù)據(jù)管理器(VisualDataManager)方便地建立數(shù)據(jù)庫(kù)、數(shù)據(jù)表和數(shù)據(jù)查詢??梢暬瘮?shù)據(jù)管理器是用VisualBasic自身開(kāi)發(fā)的一個(gè)外接程序,它提供了可視化的操作界面,能夠完成幾乎所有有關(guān)數(shù)據(jù)庫(kù)的操作。10.2創(chuàng)建Access數(shù)據(jù)庫(kù)1.啟動(dòng)數(shù)據(jù)管理器在VisualBasic集成環(huán)境中,單擊“外接程序”菜單下的“可視化數(shù)據(jù)管理器”命令,即可打開(kāi)可視化數(shù)據(jù)管理器“VisData”窗口10.2.1建立數(shù)據(jù)庫(kù)圖10-1可視化數(shù)據(jù)管理器“VisData”窗口
2.建立數(shù)據(jù)庫(kù)單擊“文件”菜單中的“新建”命令,在其級(jí)聯(lián)菜單中選擇“MicrosoftAccess(M)...”下的“Version7.0MDB”命令,出現(xiàn)“選擇要建立的MicrosoftAccess數(shù)據(jù)庫(kù)”窗口的“文件名”文本框中輸入文件名“學(xué)生管理數(shù)據(jù)庫(kù)”,“保存類型”采用系統(tǒng)默認(rèn)(缺?。┑奈募U(kuò)展名“.mdb”,單擊“保存”按鈕,則在數(shù)據(jù)管理器中出現(xiàn)“數(shù)據(jù)庫(kù)窗口”和“SQL語(yǔ)句”兩個(gè)窗口圖10-2“數(shù)據(jù)庫(kù)窗口”和“SQL語(yǔ)句”兩個(gè)窗口
3.建立數(shù)據(jù)表(1)建立表結(jié)構(gòu)要建立數(shù)據(jù)表結(jié)構(gòu),可在“數(shù)據(jù)庫(kù)窗口”中單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建表”,則出現(xiàn)“表結(jié)構(gòu)”窗口圖10-3“表結(jié)構(gòu)”窗口在“表結(jié)構(gòu)”窗口中的“表名稱”文本框中輸入“學(xué)生基本情況表”,然后單擊“添加字段”按鈕,打開(kāi)“添加字段”窗口。在“添加字段”窗口中,定義表中的每個(gè)字段名圖10-4“添加字段”窗口(2)建立索引為了提高搜索數(shù)據(jù)庫(kù)記錄的速度,需要將數(shù)據(jù)表中的某些字段設(shè)置為索引(Index)。單擊“表結(jié)構(gòu)”窗口中的“添加索引”按鈕,打開(kāi)“添加索引到學(xué)生基本情況表”窗口圖10-5“添加索引到學(xué)生基本情況表”窗口(3)生成表當(dāng)數(shù)據(jù)表設(shè)計(jì)完后,單擊“表結(jié)構(gòu)”窗口中的“生成表”按鈕,則生成了一張新表。關(guān)閉表結(jié)構(gòu)窗口后,可從數(shù)據(jù)庫(kù)窗口中看到數(shù)據(jù)表的顯示圖10-6數(shù)據(jù)庫(kù)窗口4.輸入記錄數(shù)據(jù)表的結(jié)構(gòu)建立好以后,就可以輸入記錄的各項(xiàng)數(shù)據(jù)了。在“數(shù)據(jù)庫(kù)窗口”,用鼠標(biāo)右鍵單擊數(shù)據(jù)表名稱(如“學(xué)生基本情況表”),在彈出的快捷菜單中,選擇“打開(kāi)”命令,即可打開(kāi)“數(shù)據(jù)表記錄處理”窗口圖10-7“數(shù)據(jù)表記錄處理”窗口單擊“添加”按鈕,打開(kāi)“記錄添加”窗口(如圖10-8所示),根據(jù)字段類型輸入一條記錄的值,然后單擊“更新”按鈕,返回“數(shù)據(jù)表記錄處理”窗口。記錄輸入完后,單擊“數(shù)據(jù)表記錄處理”窗口的“關(guān)閉”按鈕,輸入的記錄就保存在數(shù)據(jù)表中了。數(shù)據(jù)表的內(nèi)容輸入結(jié)束以后,還可以進(jìn)行記錄的修改和刪除。圖10-8“記錄添加”窗口5.刪除記錄刪除記錄可以通過(guò)使用數(shù)據(jù)控件或DBGrid控件來(lái)進(jìn)行。(1)使用數(shù)據(jù)控件:?jiǎn)螕簟皵?shù)據(jù)庫(kù)窗口”的“數(shù)據(jù)控件”工具按鈕,打開(kāi)數(shù)據(jù)表,數(shù)據(jù)呈單記錄方式顯示。利用其中數(shù)據(jù)控件的切換按鈕,找到想要?jiǎng)h除的記錄,單擊“刪除”按鈕,則記錄被刪除。(2)使用DBGrid控件:?jiǎn)螕鬌BGrid控件工具按鈕,再打開(kāi)數(shù)據(jù)表,表中數(shù)據(jù)呈多記錄方式顯示。只要在要?jiǎng)h除的記錄前的方框中單擊鼠標(biāo)左鍵,再按【Delete】鍵即可。步驟1:打開(kāi)可視化數(shù)據(jù)管理器“VisData”窗口,在“文件”菜單中打開(kāi)數(shù)據(jù)庫(kù)文件“學(xué)生管理數(shù)據(jù)庫(kù).mdb”。步驟2:用鼠標(biāo)右鍵單擊“數(shù)據(jù)庫(kù)窗口”,選擇快捷菜單的“新建查詢”命令,或者從“實(shí)用程序”菜單中選擇“查詢生成器”命令,都將打開(kāi)“查詢生成器”窗口。如圖10-9所示。10.2.2建立數(shù)據(jù)查詢圖10-9“查詢生成器”窗口步驟3:?jiǎn)螕簟氨怼绷斜砜蛑械臄?shù)據(jù)表名“學(xué)生基本情況表”。步驟4:?jiǎn)螕簟白侄蚊Q”的下拉箭頭,選擇“性別”,在“運(yùn)算符”中選擇“=”,在“值”文本框中輸入“男”(或單擊“列出可能的值”按鈕,選擇“男”),單擊“將And加入條件”按鈕,在“條件”列表框中會(huì)顯示查詢的SQL語(yǔ)句。步驟5:在“要顯示的字段”中選擇在查詢時(shí)需要顯示的字段。這里選擇“學(xué)生基本情況表”表中的所有字段,單擊“升序”單選按鈕。如果還有其它條件則單擊“將And加入條件”或“將Or加入條件”按鈕,將條件加入到“條件”列表框中。步驟6:?jiǎn)螕簟斑\(yùn)行”按鈕,出現(xiàn)“這是SQL傳遞查詢嗎?”消息框,單擊“否”按鈕,則可生成查詢。單擊“保存”按鈕將查詢保存,輸入查詢名為“信息學(xué)院男生”。步驟1:打開(kāi)可視化數(shù)據(jù)管理器“VisData”窗口,在“文件”菜單中打開(kāi)數(shù)據(jù)庫(kù)文件“學(xué)生管理數(shù)據(jù)庫(kù).mdb”。步驟2:執(zhí)行數(shù)據(jù)管理器“實(shí)用程序”菜單的“數(shù)據(jù)窗體設(shè)計(jì)器”命令,打開(kāi)“數(shù)據(jù)窗體設(shè)計(jì)器”窗口,如圖10-10所示。10.2.3生成數(shù)據(jù)窗體圖10-10“數(shù)據(jù)窗體設(shè)計(jì)器”窗口步驟3:在“窗體名稱”文本框中輸入所要設(shè)計(jì)的窗體名,例如輸入“xsb”;在記錄源下拉列表框中選擇“學(xué)生基本情況表”;將“可用的字段”中的所有字段添加到右邊“包括的字段框”中。步驟4:?jiǎn)螕簟吧纱绑w”按鈕完成數(shù)據(jù)窗體的設(shè)計(jì)。最后單擊“關(guān)閉”按鈕關(guān)閉數(shù)據(jù)窗體設(shè)計(jì)器。步驟5:在“工程資源管理器”窗口中可以看到剛設(shè)計(jì)好的瀏覽數(shù)據(jù)窗體“frmxsb”,設(shè)置此窗體為啟動(dòng)窗體。步驟6:運(yùn)行窗體后,結(jié)果顯示如圖10-11所示圖10-11運(yùn)行結(jié)果SQL(StructureQueryLanguage,結(jié)構(gòu)化查詢語(yǔ)言)是一種用于數(shù)據(jù)查詢的編程語(yǔ)言,是目前各種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)廣泛采用的數(shù)據(jù)庫(kù)語(yǔ)言,很多數(shù)據(jù)庫(kù)和軟件系統(tǒng)都支持SQL或提供SQL語(yǔ)言接口。10.3結(jié)構(gòu)化查詢語(yǔ)言SQLSQL語(yǔ)言由命令、子句、運(yùn)算、函數(shù)等組成。利用它們可以組成所需要的語(yǔ)句,以建立查詢、更新和處理數(shù)據(jù)庫(kù)數(shù)據(jù)。10.3.1SQL的基本組成1.SQL命令SQL語(yǔ)言由若干個(gè)SQL命令組成,用于操作數(shù)據(jù)及數(shù)據(jù)表數(shù)據(jù)。常用的SQL命令及功能命
令功
能CREATE用于建立新的數(shù)據(jù)表結(jié)構(gòu)DROP用于刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)表及其索引ALTER用于修改數(shù)據(jù)表結(jié)構(gòu)SELECT用于查找符合特定條件的某些記錄INSERT用于向數(shù)據(jù)表中加入數(shù)據(jù)UPDATE用于更新特定記錄或字段的數(shù)據(jù)DELETE用于刪除記錄2.SQL子句SQL子句用于定義要處理的數(shù)據(jù)子
句功
能FROM用于指定數(shù)據(jù)所在的數(shù)據(jù)表WHERE用于指定數(shù)據(jù)需要滿足的條件GROUPBY將選定的記錄分組HAVING用于說(shuō)明每個(gè)群組需要滿足的條件ORDERBY用于確定排序依據(jù)INTO查詢結(jié)果去向3.SQL運(yùn)算符運(yùn)算符類型運(yùn)
算
符邏輯運(yùn)算符And(與)、
Or(或)、
Not(非)比較運(yùn)算符<<=>>==<>4.SQL函數(shù)函
數(shù)功
能AVG返回特定字段中值的平均數(shù)COUNT返回選定記錄的個(gè)數(shù)SUM返回特定字段中所有值的總和MAX返回特定字段中的最大值MIN返回特定字段中的最小值1.建立數(shù)據(jù)表語(yǔ)法格式:CREATETABLE數(shù)據(jù)表名(字段名1數(shù)據(jù)類型(長(zhǎng)度),字段名2數(shù)據(jù)類型(長(zhǎng)度),…)2.添加字段語(yǔ)法格式:ALTERTABLE數(shù)據(jù)表名ADDCOLUMN字段名數(shù)據(jù)類型(長(zhǎng)度)10.3.2SQL語(yǔ)句應(yīng)用3.刪除字段語(yǔ)法格式:ALTERTABLE數(shù)據(jù)表名DROPCOLUMN字段名4.?dāng)?shù)據(jù)查詢語(yǔ)法格式:SELECT字段名表FROM子句WHERE子句GROUPBY子句HAVING子句ORDERBY子句INTO子句5.添加記錄語(yǔ)法格式:INSERTINTO數(shù)據(jù)表名(字段名1,字段名2,……)VALUES(數(shù)據(jù)1,數(shù)據(jù)2,……)6.刪除記錄語(yǔ)法格式:DELETEFROM數(shù)據(jù)表名WHERE條件表達(dá)式7.更新記錄語(yǔ)法格式:UPDATE數(shù)據(jù)表名SET新數(shù)據(jù)值WHERE條件表達(dá)式Data控件(數(shù)據(jù)控件)是VisualBasic和數(shù)據(jù)庫(kù)的聯(lián)系之一,它本身不顯示數(shù)據(jù),而是通過(guò)VisualBasic控件綁定來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的。10.4Data控件按
鈕說(shuō)
明把數(shù)據(jù)表中記錄指針移到第一條記錄。即第一條記錄為當(dāng)前可操作記錄。把數(shù)據(jù)表中記錄指針移到當(dāng)前可操作記錄的上一條記錄。即上一條記錄為當(dāng)前可操作記錄。把數(shù)據(jù)表中記錄指針移到當(dāng)前可操作記錄的下一條記錄。即下一條記錄為當(dāng)前可操作記錄。把數(shù)據(jù)表中記錄指針移到最后一條記錄。即最后一條記錄為當(dāng)前可操作記錄。10.4.1Data控件的外觀和功能圖10-12Data1控件1.Data控件的常用屬性(1)Connect屬性該屬性用于確定Data控件所要連接的數(shù)據(jù)庫(kù)的類型。VisualBasic提供了7種可訪問(wèn)的數(shù)據(jù)庫(kù)類型,其中比較常用的有MicrosoftAccess,dBASE和FoxPro等。其默認(rèn)值為Access。(2)DatabaseName屬性該屬性用于確定Data控件所要連接的數(shù)據(jù)庫(kù),是一個(gè)包含數(shù)據(jù)庫(kù)名的完整路徑。即用于返回或設(shè)置數(shù)據(jù)控件的數(shù)據(jù)源的名稱即位置。10.4.2Data控件的常用屬性(3)RecordSource屬性該屬性用于選擇Data控件所要連接的記錄源(記錄集)??梢允菙?shù)據(jù)庫(kù)的表名,也可以是查詢名。(4)Exclusive屬性該屬性用于設(shè)置是單用戶(獨(dú)占)方式還是多用戶方式打開(kāi)指定的數(shù)據(jù)庫(kù)。設(shè)置為True時(shí),表示是單用戶方式;設(shè)置為False時(shí),表示是多用戶方式。其默認(rèn)值為False。(5)ReadOnly屬性該屬性用于設(shè)置是否以只讀方式打開(kāi)指定的數(shù)據(jù)庫(kù)。設(shè)置為True時(shí),表示是只讀方式;設(shè)置為False時(shí),表示是讀寫方式。其默認(rèn)值為False。(6)RecordsetType屬性該屬性用于確定記錄集類型,有3種選擇:0-Table(表類型)。1-Dynaset(動(dòng)態(tài)類型)。2-Snapshot(快照類型)其默認(rèn)值為1-Dynaset。(7)BoFAction屬性該屬性用于決定記錄集的BOF屬性值為True(即記錄指針指向第一條記錄之前)時(shí),再向前移動(dòng)記錄指針時(shí)Data控件該采取的操作,有2種選擇:0-MoveFirst,則將記錄指針指向第一條記錄。1-BOF,則仍然保持BOF狀態(tài),但將向前移動(dòng)按鈕(MovePrevious)設(shè)置為無(wú)效。(8)EoFAction屬性該屬性用于決定記錄集的EOF屬性值為True(即記錄指針指向最后一條記錄之后)時(shí),再向后移動(dòng)記錄指針時(shí)Data控件該采取的操作,有3種選擇:0-MoveLast,則將記錄指針指向最后一條記錄。1-EOF,則仍然保持EOF狀態(tài),但將向后移動(dòng)按鈕(MoveNext)設(shè)置為無(wú)效。2-AddNew,則追加一條新記錄,可以對(duì)新記錄進(jìn)行編輯,移動(dòng)記錄指針新記錄寫入數(shù)據(jù)庫(kù)。2.Recordset對(duì)象一個(gè)Recordset對(duì)象代表一個(gè)數(shù)據(jù)庫(kù)表里的記錄,或運(yùn)行一次查詢所得的記錄的結(jié)果。在Data控件中可用3類Recordset對(duì)象,即表類型(Table)、動(dòng)態(tài)類型(Dynaset)和快照類型(Snapshot)。默認(rèn)為Dynaset類型。表類型(Table):屬性值為0或Table。表類型的記錄集對(duì)象是一個(gè)記錄集合,可以進(jìn)行記錄的添加、更新或刪除等操作。動(dòng)態(tài)類型(Dynaset):屬性值為1或Dynaset。動(dòng)態(tài)類型的記錄集對(duì)象可以是一個(gè)表,也可以是從一個(gè)或多個(gè)表中得到的查詢結(jié)果。Dynaset允許添加、更新或刪除記錄,并且任何改變都將會(huì)反映在基本表上??煺疹愋停⊿napshot):屬性值為2或Snapshot??煺疹愋偷挠涗浖瘜?duì)象是一個(gè)記錄集合的靜態(tài)副本,可用于尋找數(shù)據(jù)或生成報(bào)表。快照類型記錄集能包含從一個(gè)到多個(gè)在同一數(shù)據(jù)庫(kù)表里取出的字段,但不能更新修改。Data控件可以使用三類Recordset對(duì)象中的任何一種來(lái)提供對(duì)存儲(chǔ)在數(shù)據(jù)庫(kù)的中數(shù)據(jù)的訪問(wèn)。使用什么記錄集關(guān)鍵取決于要完成的任務(wù)。在3種記錄集中,動(dòng)態(tài)類型的記錄集對(duì)象最靈活,功能也最強(qiáng),適合更新數(shù)據(jù),但其搜索速度不及表類型。表類型的記錄集對(duì)象速度較快,但只能對(duì)單個(gè)表進(jìn)行操作,已建立了索引,適合快速定位與排序,但內(nèi)存開(kāi)銷太大??煺疹愋偷挠涗浖瘜?duì)象是最不靈活的,但其速度是最快的,內(nèi)存開(kāi)銷最小,適合顯示只讀數(shù)據(jù)。3.Recordset對(duì)象的常用屬性(1)BOF屬性如果記錄指針指向記錄集的第一個(gè)記錄之前,則BOF屬性值為True,否則為False。(2)EOF屬性如果記錄指針指向記錄集的最后一個(gè)記錄之后,則EOF屬性值為True,否則為False。(3)NoMatch屬性該屬性用于指示對(duì)記錄集中數(shù)據(jù)的查詢結(jié)果,如果查詢成功,則該屬性值為False,如果查詢失敗,則該屬性值為True。(4)AbsolutePosition屬性該屬性用于指示記錄集記錄指針的位置(序號(hào))。其取值從1開(kāi)始,即記錄指針指向記錄集的第一條記錄時(shí),屬性值等于1,以下記錄依此類推。(5)RecordCount屬性該屬性用于獲得記錄集中的記錄總數(shù),此屬性為只讀屬性。1.Data控件的常用方法(1)Refresh方法如果在程序運(yùn)行過(guò)程中修改了Data控件的一些屬性設(shè)置,如ReadOnly,Exclusive,DatabaseName等,必須在設(shè)置完屬性后使用Refresh方法使之生效。語(yǔ)法格式:<對(duì)象>.Refresh10.4.3Data控件的常用方法與事件(2)UpdateRecord方法當(dāng)被綁定控件的數(shù)據(jù)修改后,Data控件需要移動(dòng)記錄集的指針才能自動(dòng)保存修改結(jié)果。如果使用UpdateRecord方法,則可強(qiáng)制數(shù)據(jù)控件將被綁定控件內(nèi)的數(shù)據(jù)寫入到數(shù)據(jù)庫(kù)中而不再觸發(fā)Validate事件。通常在代碼中調(diào)用此方法強(qiáng)制更新數(shù)據(jù)。語(yǔ)法格式:<對(duì)象>.UpdateRecord(3)UpdateControls方法該方法用于將數(shù)據(jù)從數(shù)據(jù)庫(kù)中重新讀到被綁定的控件中。如果在修改記錄集的數(shù)據(jù)后要放棄修改,則可以調(diào)用此方法完成放棄修改操作。語(yǔ)法格式:<對(duì)象>.UpdateControls2.Data控件的常用事件(1)Reposition事件只要改變記錄集的記錄指針位置就會(huì)觸發(fā)Reposition事件。Reposition事件過(guò)程通常用作對(duì)記錄集指針改變時(shí)的響應(yīng)。(2)Validate事件Validate事件主要用于對(duì)輸入數(shù)據(jù)進(jìn)行有效性檢查。當(dāng)要移動(dòng)記錄指針前,修改和刪除記錄前或卸載含有Data控件的窗體時(shí)觸發(fā)Validate事件。系統(tǒng)默認(rèn)的Validate事件過(guò)程有3個(gè)參數(shù):可選參數(shù)Index用于指定Data控件在控件數(shù)組中的序號(hào);Action用于說(shuō)明觸發(fā)Validate事件的操作;Save用于說(shuō)明與該Data控件綁定的控件內(nèi)容是否進(jìn)行了修改。3.Recordset對(duì)象的常用方法(1)AddNew方法該方法用于向數(shù)據(jù)庫(kù)中添加新紀(jì)錄。操作步驟:調(diào)用AddNew方法,在數(shù)據(jù)庫(kù)中就添加了一條空白記錄。通過(guò)綁定的控件輸入需添加的數(shù)據(jù)。單擊Data控件上的箭頭按鈕,移動(dòng)記錄指針,或調(diào)用Update方法,確定所做添加。語(yǔ)法格式:<對(duì)象>.Recordset.AddNew(2)Delete方法該方法用于刪除數(shù)據(jù)庫(kù)中的當(dāng)前記錄(記錄指針?biāo)傅挠涗洠?。操作步驟:將要?jiǎng)h除的記錄定位為當(dāng)前記錄。調(diào)用Delete方法。移動(dòng)記錄指針,確定所做刪除操作。語(yǔ)法格式:<對(duì)象>.Recordset.Delete(3)Update方法該方法用于向系統(tǒng)提交一個(gè)更新數(shù)據(jù)庫(kù)的命令,即保存對(duì)數(shù)據(jù)庫(kù)所作的改動(dòng)。語(yǔ)法格式:<對(duì)象>.Recordset.Update(4)MoveFirst方法該方法用于移動(dòng)記錄指針到第一條記錄。語(yǔ)法格式:<對(duì)象>.Recordset.MoveFirst(5)MoveLast方法該方法用于移動(dòng)記錄指針到最后一條記錄。語(yǔ)法格式:<對(duì)象>.Recordset.MoveLast(6)MovePrevious方法該方法用于移動(dòng)記錄指針到上一條記錄。語(yǔ)法格式:<對(duì)象>.Recordset.MovePrevious(7)MoveNext方法該方法用于移動(dòng)記錄指針到下一條記錄。語(yǔ)法格式:<對(duì)象>.Recordset.MoveNext所謂數(shù)據(jù)綁定,是指控件的數(shù)據(jù)顯示和操作的結(jié)果與數(shù)據(jù)庫(kù)的數(shù)據(jù)保持實(shí)時(shí)的一致性。即當(dāng)控件中的數(shù)據(jù)改變時(shí),數(shù)據(jù)庫(kù)中對(duì)應(yīng)的數(shù)據(jù)也會(huì)發(fā)生同樣的變化。能與Data控件綁定的可以是內(nèi)部標(biāo)準(zhǔn)控件,也可以是ActiveX控件。以下列出的是與Data控件綁定的常用標(biāo)準(zhǔn)控件和可添加到工程中的外部ActiveX控件。10.4.4數(shù)據(jù)綁定控件1.常用標(biāo)準(zhǔn)數(shù)據(jù)綁定控件TextBox 文本框控件Label 標(biāo)簽控件ListBox 列表框控件ComBox 組合框控件CheckBox 復(fù)選框控件PictureBox 圖片框控件Image 圖像控件2.常用與Data控件綁定的ActiveX控件DBCombo 數(shù)據(jù)庫(kù)組合控件DBList 數(shù)據(jù)庫(kù)列表控件DBGrid 數(shù)據(jù)庫(kù)表格控件3.?dāng)?shù)據(jù)綁定控件的主要屬性要使窗體中數(shù)據(jù)綁定控件與數(shù)據(jù)庫(kù)中的數(shù)據(jù)相關(guān)聯(lián),必須給其定義以下兩個(gè)屬性:(1)DataSource屬性該屬性用于指定一個(gè)Data控件??丶?duì)象通過(guò)指定的Data控件與數(shù)據(jù)庫(kù)中的數(shù)據(jù)聯(lián)系起來(lái)。DataSource屬性必須在設(shè)計(jì)時(shí)通過(guò)屬性窗口進(jìn)行設(shè)置。(2)DataField屬性該屬性表示在控件對(duì)象顯示的是哪一個(gè)字段的內(nèi)容。它可以在屬性窗口中進(jìn)行設(shè)置,也可以在運(yùn)行時(shí)利用語(yǔ)句進(jìn)行設(shè)置。4.?dāng)?shù)據(jù)綁定控件的使用實(shí)際應(yīng)用中,數(shù)據(jù)綁定控件必須與數(shù)據(jù)控件配合使用才能完成完整的數(shù)據(jù)處理任務(wù)。創(chuàng)建使用數(shù)據(jù)綁定控件應(yīng)用程序的基本操作步驟如下:(1)將Data控件添加到應(yīng)用程序窗體中。(2)設(shè)置Data控件的DatabaseName和RecordSource屬性,建立其與數(shù)據(jù)庫(kù)的連接。(3)向應(yīng)用程序窗體添加滿足顯示和編輯數(shù)據(jù)要求的各種數(shù)據(jù)綁定控件。(4)將數(shù)據(jù)綁定控件的DataSource屬性設(shè)置為Data控件的控件名。(5)將數(shù)據(jù)綁定控件的DataField屬性設(shè)置為要顯示或編輯的字段名。10.5.1ADO對(duì)象模型ADO是ActiveXDataObject的簡(jiǎn)稱。它是OLEDB的一種開(kāi)發(fā)接口。OLEDB是一種開(kāi)放規(guī)范,用于在開(kāi)放式數(shù)據(jù)庫(kù)(ODBC)上創(chuàng)建應(yīng)用程序保存接口(API)。在VisualBasic中,可用的數(shù)據(jù)訪問(wèn)接口有三種:ActiveX數(shù)據(jù)對(duì)象(ADO)、遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO,RemoteDataObject)和數(shù)據(jù)訪問(wèn)對(duì)象(DAO,DataAccessObjects)。10.5ADO數(shù)據(jù)訪問(wèn)技術(shù)ADO對(duì)象模型提供了一組易于使用的對(duì)象、屬性和方法。ADO對(duì)象模型主要包括:Connection對(duì)象、Command對(duì)象、Recordset對(duì)象、Field對(duì)象、Error對(duì)象、Parameter對(duì)象、Property對(duì)象等對(duì)ADO對(duì)象的主要操作,主要包括以下幾個(gè)方面:(1)連接到數(shù)據(jù)源。這是可選的,通常使用ADO的Connection對(duì)象完成連接。由于ADO對(duì)象對(duì)頂層對(duì)象(Connection)的依賴不強(qiáng),可以繞過(guò)Connection對(duì)象而直接創(chuàng)建和使用Recordset對(duì)象。(2)提交并執(zhí)行命令。通常使用ADO的Command對(duì)象向數(shù)據(jù)源提交并執(zhí)行命令。在查詢中可以與參數(shù)對(duì)象(Parameter)協(xié)同使用。(3)處理返回的記錄集。如果提交的命令有結(jié)果返回,可以通過(guò)ADO的Recordset對(duì)象對(duì)結(jié)果進(jìn)行操作,數(shù)據(jù)存儲(chǔ)在緩存中。(4)更新數(shù)據(jù)源。根據(jù)應(yīng)用程序需要,可將緩存中被修改的數(shù)據(jù)更新到物理的存儲(chǔ)上。(5)捕獲和處理錯(cuò)誤。通常使用Error對(duì)象捕獲并處理運(yùn)行過(guò)程中產(chǎn)生的錯(cuò)誤信息。10.5.2ADO對(duì)象模型的使用ADOData控件比Data控件更靈活,功能更全面。ADOData控件的核心是Connection對(duì)象、Recordset對(duì)象、Command對(duì)象。對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),首先需要用Connection對(duì)象與數(shù)據(jù)庫(kù)建立聯(lián)系,然后用Recordset對(duì)象來(lái)操作、維護(hù)數(shù)據(jù),利用Command對(duì)象實(shí)現(xiàn)存儲(chǔ)過(guò)程和參數(shù)的查詢。10.5.3ADOData控件ADOData控件與Data
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 哺乳期解除勞動(dòng)合同協(xié)議范本
- 2024年房屋補(bǔ)漏維修工程合同
- 2024專項(xiàng)資金借款的合同范本
- 員工聘用合同協(xié)議書范文2024年
- 建設(shè)工程內(nèi)部承包合同書2024年
- 2024新款供貨合同協(xié)議書
- 2024【流動(dòng)資金外匯借貸合同】公司流動(dòng)資金合同
- 2024年公司股東之間借款合同實(shí)例
- 專業(yè)房屋買賣合同模板大全
- 2024年事業(yè)單位聘用
- 重點(diǎn)部位感染與預(yù)防控制
- 高校快遞包裝回收現(xiàn)狀分析及對(duì)策-以廣東省中山市三大高校為例
- 初創(chuàng)企業(yè)財(cái)務(wù)管理計(jì)劃書
- 新民事訴訟書范文追債通用21篇
- 100ml生理鹽水的配制講解
- 加油站消防安全基本常識(shí)
- 熱力集團(tuán)招聘試題
- 如何預(yù)防生銹醫(yī)療器械
- 西蒙決策理論研究
- 人教鄂教版小學(xué)科學(xué)三年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)
- 學(xué)前教育教研工作計(jì)劃與目標(biāo)
評(píng)論
0/150
提交評(píng)論