版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、物流信息系統(tǒng)實驗指導書郭 璘 編制寧波工程學院交通與物流學院15目 錄目 錄實驗一 Access2003數(shù)據(jù)庫基礎與項目實訓1實驗目的:1實驗內(nèi)容:1實驗課時安排:11.1 Access 2003數(shù)據(jù)庫環(huán)境和數(shù)據(jù)庫基本操作21.1.1 啟動Access200321.1.2 建立庫與表31.1.3 修改表結構和表內(nèi)容41.2訂單管理系統(tǒng)數(shù)據(jù)庫設計與數(shù)據(jù)表操作61.2.1 訂單管理系統(tǒng)數(shù)據(jù)庫設計61.2.2 訂單管理系統(tǒng)數(shù)據(jù)表操作81.3訂單管理系統(tǒng)簡單SQL數(shù)據(jù)庫操作101.3.1 數(shù)據(jù)更新101.3.2 數(shù)據(jù)插入111.3.3 數(shù)據(jù)刪除111.3.4簡單SQL查詢121.4訂單管理系統(tǒng)復雜SQ
2、L數(shù)據(jù)庫操作131.4.1使用聚合函數(shù)實現(xiàn)數(shù)據(jù)統(tǒng)計131.4.2多個表聯(lián)合查詢15實驗二 VC+面向?qū)ο蟪绦蛟O計及項目實訓16實驗目的:16實驗內(nèi)容:16實驗課時安排:162.1 Visual C+ 6.0集成開發(fā)環(huán)境172.1.1 啟動Visual C+ 6.0172.1.2 創(chuàng)建對話框MFC應用程序182.2 訂單管理系統(tǒng)實訓項目界面設計202.2.1 帶菜單項的對話框應用程序設計202.2.2 訂單管理系統(tǒng)界面設計222.2.3 為訂單管理系統(tǒng)的菜單項添加消息處理代碼24實驗三 VC+Access管理信息系統(tǒng)初步開發(fā)26實驗目的:26實驗內(nèi)容:26實驗課時安排:263.1 在Visual
3、 C+ 6.0中使用ODBC方式訪問并顯示數(shù)據(jù)庫273.1.1 設置后臺數(shù)據(jù)源273.1.2 添加網(wǎng)格控件DBGrid用于顯示數(shù)據(jù)庫內(nèi)容283.1.3 添加遠程數(shù)據(jù)訪問控件Microsoft RemoteData Control303.1.4 通過DBGrid控件和RDC控件顯示數(shù)據(jù)庫內(nèi)容313.2 在Visual C+ 6.0中使用ADO方式控制和更新數(shù)據(jù)庫373.2.1 添加訂單管理系統(tǒng)二級菜單項的對話框和消息處理函數(shù)373.2.2 訂單管理系統(tǒng)產(chǎn)品添加功能實現(xiàn)423.2.3 訂單管理系統(tǒng)產(chǎn)品刪除功能實現(xiàn)443.2.4 訂單管理系統(tǒng)產(chǎn)品修改功能實現(xiàn)463.3 訂單管理系統(tǒng)的實現(xiàn)493.3.
4、1訂單管理系統(tǒng)的系統(tǒng)登錄功能實現(xiàn)493.3.2訂單管理系統(tǒng)的其他功能實現(xiàn)54物流信息系統(tǒng)實驗指導書實驗一 Access2003數(shù)據(jù)庫基礎與項目實訓實驗目的:熟悉和了解Access 2003數(shù)據(jù)庫管理系統(tǒng)操作環(huán)境,結合訂單管理系統(tǒng)實訓項目,掌握在Access2003中進行SQL數(shù)據(jù)庫查詢的各種基本操作。實驗內(nèi)容:1、熟悉Access2003軟件操作環(huán)境;2、掌握在Access2003中新建數(shù)據(jù)庫、新建表及表結構設計、新建窗體及利用窗體錄入數(shù)據(jù)、新建報表及新建頁等基本操作;3、結合訂單管理系統(tǒng)實訓項目,掌握在Access2003中通過SQL語句進行數(shù)據(jù)表建立與刪除、數(shù)據(jù)插入、數(shù)據(jù)更新、單個表數(shù)據(jù)查
5、詢等的基本操作方法。實驗課時安排:共4課時,其中:1課時用于熟悉Access 2003數(shù)據(jù)庫環(huán)境和數(shù)據(jù)庫基本操作;2課時結合訂單管理系統(tǒng)進行數(shù)據(jù)庫表設計和表建立,通過SQL進行各種數(shù)據(jù)庫基本操作,包括表建立與刪除、數(shù)據(jù)插入、數(shù)據(jù)更新、單個表數(shù)據(jù)查詢等;1課時用于復雜SQL查詢,如多個表聯(lián)合數(shù)據(jù)查詢、查詢統(tǒng)計等。1.1 Access 2003數(shù)據(jù)庫環(huán)境和數(shù)據(jù)庫基本操作1.1.1 啟動Access2003 圖1-1 啟動Access2003圖1-2 進入Access2003操作環(huán)境1.1.2 建立庫與表圖1-3 新建空數(shù)據(jù)庫并命名為db1.mdb圖1-4 使用設計器創(chuàng)建表圖1-5 建立學生表、字段
6、和主關鍵字,并保存為“學生信息表”1.1.3 修改表結構和表內(nèi)容右鍵單擊“學生信息表”,點擊“設計視圖”,修改表結構,選擇“插入行”,增加了一個字段“學院”,保存表結構。 圖1-6 修改表結構 表內(nèi)容可通過兩種方式進行操作,既可以通過左鍵雙擊“學生信息表”插入記錄,也可以通過窗體插入記錄。圖1-7 通過數(shù)據(jù)表視圖修改表內(nèi)容從左邊對象中選擇“窗體”,點擊右邊的“使用向?qū)?chuàng)建窗體”,選中學生信息表中全部字段,點擊完成。 圖1-8 通過窗體修改表內(nèi)容1.2訂單管理系統(tǒng)數(shù)據(jù)庫設計與數(shù)據(jù)表操作1.2.1 訂單管理系統(tǒng)數(shù)據(jù)庫設計 圖1-9 訂單管理系統(tǒng)數(shù)據(jù)表結構1、新建“訂單管理”數(shù)據(jù)庫,新建“產(chǎn)品”表。
7、表既可以通過設計視圖建立(見1.1節(jié)),也可以通過SQL語句建立。SQL建表步驟如下:首先,從左邊對象中選擇“查詢”,點擊右邊的“在設計視圖中創(chuàng)建查詢”,關閉“顯示表”,點擊完成;點擊菜單欄最左邊的“SQL”,啟動SQL查詢操作窗口(如圖1-10);然后,通過create建表語句建立“產(chǎn)品”表(如圖1-11左);最后,單擊工具欄中的“運行”按鈕執(zhí)行該SQL語句。保存該查詢或直接退出,打開表結構如圖1-11右。 圖1-10 啟動SQL查詢操作窗口 圖1-11 建立“產(chǎn)品”表SQL語句: create table 產(chǎn)品 (產(chǎn)品ID integer primary key, 產(chǎn)品名稱 text, 產(chǎn)
8、品單價 money)2、修改“產(chǎn)品”表,添加和刪除一個“供貨商”字段 圖1-12 添加一個“供應商”字段SQL語句: alter table 產(chǎn)品 add 供應商 text (20) 圖1-13 添加 “供應商”字段SQL語句: alter table 產(chǎn)品 drop 供應商3、創(chuàng)建“訂單”表 圖1-14 創(chuàng)建“訂單”表SQL語句: create table 訂單 (訂單ID integer primary key, 客戶ID integer, 產(chǎn)品ID integer, 數(shù)量 integer, 銷售價格 money, 合計 money)4、創(chuàng)建“客戶“表 圖1-15 創(chuàng)建“客戶”表SQL語句
9、:create table 客戶 (客戶ID integer primary key, 客戶名稱 text, 客戶地址 text)1.2.2 訂單管理系統(tǒng)數(shù)據(jù)表操作分別左鍵雙擊“產(chǎn)品”表、“客戶”表、“訂單”表添加如下記錄: 圖1-16 在產(chǎn)品表和訂單表添加記錄1.3訂單管理系統(tǒng)簡單SQL數(shù)據(jù)庫操作1.3.1 數(shù)據(jù)更新啟動SQL查詢操作窗口(如圖1-10),通過update語句更新訂單中的合計字段。圖1-17 更新訂單表中的合計字段屬性值SQL語句: update 訂單 set 合計=數(shù)量*銷售價格1.3.2 數(shù)據(jù)插入啟動SQL查詢操作窗口(如圖1-10),通過insert語句在產(chǎn)品表中插入一
10、條記錄。圖1-18在產(chǎn)品表中插入一條新記錄SQL語句: insert into 產(chǎn)品(產(chǎn)品ID, 產(chǎn)品名稱, 產(chǎn)品單價) values(11, “獼猴桃”, 15)1.3.3 數(shù)據(jù)刪除啟動SQL查詢操作窗口(如圖1-10),通過delete語句在產(chǎn)品表中刪除一條記錄。 圖1-19 在產(chǎn)品表中刪除一條記錄SQL語句: delete from 產(chǎn)品 where 產(chǎn)品ID=111.3.4簡單SQL查詢 圖1-20 在產(chǎn)品表中查詢部分字段SQL語句: select 產(chǎn)品名稱, 產(chǎn)品單價 from 產(chǎn)品圖1-21 在產(chǎn)品表中查詢所有字段SQL語句: select * from 產(chǎn)品 圖1-22 在產(chǎn)品表
11、中查詢不同的產(chǎn)品單價值SQL語句: select distinct 產(chǎn)品單價 from 產(chǎn)品 圖1-23 在產(chǎn)品表中查詢產(chǎn)品單價小于10的產(chǎn)品SQL語句: select * from 產(chǎn)品 where 產(chǎn)品單價<10圖1-24 按產(chǎn)品單價降序輸出SQL語句: select * from 產(chǎn)品 order by 產(chǎn)品單價desc 圖1-25在產(chǎn)品表中查詢產(chǎn)品單價為10或15或20的產(chǎn)品SQL語句: select * from 產(chǎn)品 where 產(chǎn)品單價 in (10, 15, 20)1.4訂單管理系統(tǒng)復雜SQL數(shù)據(jù)庫操作1.4.1使用聚合函數(shù)實現(xiàn)數(shù)據(jù)統(tǒng)計 圖1-26在產(chǎn)品表中統(tǒng)計產(chǎn)品單價大
12、于10的數(shù)量SQL語句: select count(*) as Num from 產(chǎn)品 where 產(chǎn)品單價>10 圖1-27在產(chǎn)品表中統(tǒng)計最高的產(chǎn)品單價SQL語句: select max(產(chǎn)品單價) as 最高單價 from 產(chǎn)品 圖1-28在產(chǎn)品表中統(tǒng)計平均的產(chǎn)品單價SQL語句: select avg(產(chǎn)品單價) as 平均價格 from 產(chǎn)品圖1-29在產(chǎn)品表中查詢高于平均單價的產(chǎn)品,并按降序排列SQL語句: select產(chǎn)品名稱, 產(chǎn)品單價 from 產(chǎn)品 where (產(chǎn)品單價> (select avg(產(chǎn)品單價) from 產(chǎn)品) order by 產(chǎn)品單價 desc
13、圖1-30在訂單表中查詢高于平均銷售價格的訂單,并按降序排列SQL語句: select訂單ID, 銷售價格 from 訂單 where (銷售價格> (select avg(銷售價格) from 訂單) order by 銷售價格 desc1.4.2多個表聯(lián)合查詢 圖1-31實現(xiàn)輸出所有“訂單”表中與“產(chǎn)品ID”相對應的“產(chǎn)品名稱”記錄SQL語句: select訂單.訂單ID, 產(chǎn)品.產(chǎn)品名稱 from 產(chǎn)品, 訂單 where 產(chǎn)品.產(chǎn)品ID=訂單.產(chǎn)品ID圖1-32實現(xiàn)連接“產(chǎn)品”和“訂單”表,輸出相同產(chǎn)品ID的記錄SQL語句: select產(chǎn)品.*, 訂單ID, 客戶ID, 數(shù)量,
14、 銷售價格, 合計 from 產(chǎn)品, 訂單 where 產(chǎn)品.產(chǎn)品ID=訂單.產(chǎn)品ID order by 產(chǎn)品.產(chǎn)品ID物流信息系統(tǒng)實驗指導書實驗二 VC+面向?qū)ο蟪绦蛟O計及項目實訓實驗目的:熟悉Visual C+ 6.0集成開發(fā)環(huán)境,了解VC面向?qū)ο蟪绦蛟O計思想、掌握簡單的面向?qū)ο蟪绦蛟O計編程及VC界面設計。實驗內(nèi)容:1、熟悉Visual C+ 6.0集成開發(fā)環(huán)境;2、熟悉對話框應用程序設計;3、結合訂單管理系統(tǒng)實訓項目進行程序界面設計。實驗課時安排:共2課時,其中:用于熟悉Visual C+ 6.0集成開發(fā)環(huán)境和訂單管理系統(tǒng)的界面設計。2.1 Visual C+ 6.0集成開發(fā)環(huán)境2.1.
15、1 啟動Visual C+ 6.0圖2-1 啟動Visual C+ 6.0圖2-2 進入VC操作環(huán)境2.1.2 創(chuàng)建對話框MFC應用程序 創(chuàng)建對話框MFC應用程序的步驟如下: (1)選“File”|“New”菜單命令,新建Visual C+項目,在“Project”選項卡中,選擇“MFC AppWizard(exe)”選項,并命名為“MFCDialog”,如圖2-3所示。圖2-3創(chuàng)建“MFCDialog”項目(2)MFC的應用程序向?qū)П容^多,有6個步驟,但是如果創(chuàng)建基于對話框的應用程序,在第1步選擇“Dialog based”單選按鈕即可。(3)單擊“Finish”按鈕,直接結束MFC的應用程
16、序向?qū)?。開發(fā)的工作界面如圖2-4所示。按下F5鍵編譯并運行該項目,可得到圖2-5所示的運行結果。圖2-4 對話框應用程序工作區(qū)界面圖2-5對話框應用程序的界面2.2 訂單管理系統(tǒng)實訓項目界面設計2.2.1 帶菜單項的對話框應用程序設計按照2.2.1 創(chuàng)建對話框MFC應用程序的步驟,創(chuàng)建一個基于對話框的應用程序,并命名為“Order_MIS”(如圖2-6)。圖2-6 創(chuàng)建基于對話框的應用程序Order_MIS在VC菜單欄中選擇“Insert”-“Resource”,選擇資源類型“Menu”,點擊“New”(如圖2-7),在左邊的Resource視圖中即可看到新加入的菜單(如圖2-8)。圖2-7
17、插入菜單項圖2-8 添加了菜單項的資源窗口然后,將菜單與應用程序主窗口連接起來,步驟如下:(1)在ResourceView面板中,雙擊Dialog資源中的IDD_ORDER_MIS_DIALOG,彈出對話框編輯窗口(如圖2-9)。(2)在對話框的任何一個空白域單擊鼠標右鍵,然后在彈出的快捷菜單中選擇Properties命令,彈出Dialog Properties對話框(如圖2-10),可以修改對話框的樣式等內(nèi)容。在對話框的Menu組合框中選擇IDR_MENU1,可將菜單與應用程序主窗口連接。 圖2-9 對話框編輯窗口圖2-10 Dialog Properties 對話框2.2.2 訂單管理系統(tǒng)
18、界面設計(1)在ResourceView面板中,雙擊Dialog資源中的IDD_ORDER_MIS_DIALOG,編輯修改對話框界面,刪除“確定”和“取消”按鈕,將靜態(tài)文本框中的文本修改為“歡迎使用訂單管理系統(tǒng)”,右鍵單擊對話框?qū)υ捒驑祟}改為“訂單管理系統(tǒng)”(如圖2-11)。圖2-11 訂單管理系統(tǒng)對話框設計(2)在ResourceView面板中,雙擊Menu資源中的IDR_MENU1,開始編輯IDR_MENU1菜單;雙擊最左邊的菜單項,將Caption的內(nèi)容改為“客戶管理”,雙擊下拉菜單項,分別添加“客戶查詢”、“客戶添加”、“客戶刪除”和“客戶修改”。依次類推,完成其他菜單項的編輯(如圖
19、2-12)。(3)執(zhí)行應用程序(Ctr+F5),可看到訂單管理系統(tǒng)的運行界面(如圖2-13)。圖2-12訂單管理系統(tǒng)菜單項設計圖2-13 編譯運行后得到的訂單管理系統(tǒng)界面2.2.3 為訂單管理系統(tǒng)的菜單項添加消息處理代碼(1)在ResourceView面板中,雙擊Menu資源中的IDR_MENU1,右鍵點擊任意菜單項,選擇ClassWizard,啟動MFC ClassWizard。彈出Adding a class窗口,選擇一個存在的類,在Class name下拉列表框中選擇COrder_MISDlg類。(2)在Object IDs中選擇一個菜單項如“退出”(ID為ID_Exit),在Messa
20、ges欄中雙擊COMMAND,彈出Add Member Function對話框,單擊“OK”按鈕接收默認的函數(shù)名為OnExit。(3)在ClassView面板中,展開COrder_MISDlg類視圖(如圖2-14),即可看到OnExit函數(shù),雙擊OnExit可添加消息處理代碼。圖2-14展開COrder_MISDlg類視圖(4)在OnExit()函數(shù)中添加一行代碼:COrder_MISDlg:OnCancel(); /退出對話框(5)在編譯運行后,執(zhí)行菜單欄中的“退出”,程序會退出。(6)同理,可為菜單欄中任意菜單項添加消息處理函數(shù)。25物流信息系統(tǒng)實驗指導書實驗三 VC+Access管理信息
21、系統(tǒng)初步開發(fā)實驗目的:初步掌握綜合運用Visual C+ 6.0和Access2003進行數(shù)據(jù)庫編程和物流信息系統(tǒng)初步開發(fā)的基本技術和思想。實驗內(nèi)容:1、在Visual C+ 6.0中通過ODBC(開發(fā)數(shù)據(jù)庫互聯(lián))方式訪問并顯示Access2003數(shù)據(jù)庫內(nèi)容;2、在Visual C+ 6.0中通過ADO(ActiveX Data Objects)方式訪問并控制Access2003數(shù)據(jù)庫內(nèi)容;3、實現(xiàn)訂單管理系統(tǒng)實訓項目的部分代碼,如產(chǎn)品管理(包括產(chǎn)品查詢、添加、刪除和修改等)、系統(tǒng)登錄等。實驗課時安排:共6課時,其中:2課時用于通過ODBC方式訪問并顯示數(shù)據(jù)庫;2課時用于通過ADO方式訪問并控
22、制數(shù)據(jù)庫;2課時用于訂單管理系統(tǒng)部分代碼的操作。3.1 在Visual C+ 6.0中使用ODBC方式訪問并顯示數(shù)據(jù)庫3.1.1 設置后臺數(shù)據(jù)源本節(jié)采用ODBC(開發(fā)數(shù)據(jù)庫互聯(lián))接口同Access 2003數(shù)據(jù)源相連,并將數(shù)據(jù)庫中的記錄數(shù)據(jù)通過網(wǎng)格的形式顯示給用戶。在開始編制程序之前首先要通過控制面板-管理工具的ODBC數(shù)據(jù)源設置我們待操作的后臺Access數(shù)據(jù)源,建立名稱為"OrderMIS"的用戶DSN,并將其指向db1.mdb。 圖3-1 啟動ODBC數(shù)據(jù)源管理器 圖3-2 設置名為OrderMIS的ODBC數(shù)據(jù)源3.1.2 添加網(wǎng)格控件DBGrid用于顯示數(shù)據(jù)庫內(nèi)容
23、由于默認情況下VC+6.0控件工具箱中沒有DBGrid網(wǎng)格控件,故需要手動添加ActiveX Control,方法如下:(1)選擇菜單->Project->Add to Project->Components and Controls Gallery;(2)在部件選擇對話框中進入Registered ActiveX Controls;(3)選擇DBGrid Control,單擊Insert按鈕,確認后對類進行配置(可以按默認),我們不做任何修改單擊OK按鈕,插入完成。添加完成后,在控件工具箱中出現(xiàn)了DBGrid控件(最后一個控件)。 圖3-3 在VC中添加DBGrid Con
24、trol3.1.3 添加遠程數(shù)據(jù)訪問控件Microsoft RemoteData Control 我們還要繼續(xù)添加一些輔助的控件來完成同數(shù)據(jù)庫源的綁定。用同插入DBGird控件一樣的步驟,插入Microsoft RemoteData Control控件,完成后該控件出現(xiàn)在控件工具箱中(最后一個控件)。圖3-4 添加遠程數(shù)據(jù)訪問RDC控件3.1.4 通過DBGrid控件和RDC控件顯示數(shù)據(jù)庫內(nèi)容1、添加“產(chǎn)品查詢”菜單項的處理函數(shù):在VC+的ResourceView面板中,雙擊Menu資源中的IDR_MENU1,在右邊設計窗口中通過類向?qū)砑印爱a(chǎn)品查詢”的處理函數(shù)(如圖3-5)。圖3-5 添加產(chǎn)
25、品查詢菜單項的處理函數(shù)2、添加用于“產(chǎn)品查詢”菜單項的對話框處理界面:在VC+的菜單欄中選擇“Insert”-“Resource”,在彈出的插入資源對話框中選擇Dialog,并單擊New按鈕后,在資源面板中可以看到新插入的對話框IDD_DIALOG1,用于產(chǎn)品查詢的處理界面(如圖3-6)。圖3-6 添加用于產(chǎn)品查詢的對話框IDD_DIALOG13、編輯對話框IDD_DIALOG1:通過控件工具箱添加DBGrid控件、Remote Data控件、Combo Box控件、查詢按鈕等(如圖3-7)。圖3-7對話框IDD_DIALOG1內(nèi)容設計4、編輯對話框IDD_DIALOG1中各控件的屬性:如圖3
26、-8所示。 圖3-8 設置各控件的屬性5、添加對話框中“查詢”按鈕的處理函數(shù):左鍵雙擊查詢按鈕,在彈出的對話框中選擇“Creating a new class”,點擊OK,如圖3-9所示: 圖3-9 添加對話框中查詢按鈕的處理函數(shù)6、添加代碼:(1)在類視圖面板中,展開COrder_MISDlg類,首先在文件頭添加包含CDialog1類頭文件的一行代碼,然后添加“產(chǎn)品查詢”菜單項OnProduct1的處理函數(shù)。#include "Dialog1.h" void COrder_MISDlg:OnProduct1() / TODO: Add your command handl
27、er code here CDialog1 dialog1;dialog1.DoModal(); /啟動產(chǎn)品查詢對話框(2)在類視圖面板中,展開CDialog1類,添加“查詢”按鈕OnButton1的處理函數(shù)。這里,還需要通過啟動ClassWizard,添加Combo Box控件的成員變量和RemoteData控件的成員變量,進行控件與變量之間的數(shù)據(jù)綁定。圖3-10 添加對話框中相關控件的成員變量在CDialog1類視圖中添加“查詢”按鈕OnButton1的處理函數(shù):void CDialog1:OnButton1() UpdateData(1); /讀取控件值CString sql="
28、;select * from 產(chǎn)品"if(m_combo1!="") /當選擇了復選按鈕的下拉項時sql=sql+ " where 產(chǎn)品單價 "sql=sql+m_combo1; /SQL語句定義 sql=sql+" order by 產(chǎn)品單價" /按產(chǎn)品單價排序m_rdc1.SetSql(sql); /設置產(chǎn)品查詢的SQL語句 m_rdc1.Refresh(); /刷新遠程數(shù)據(jù)訪問控件7、編譯運行:圖3-11 點擊“產(chǎn)品查詢”菜單項后的對話框運行界面及查詢結果3.2 在Visual C+ 6.0中使用ADO方式控制和更新數(shù)
29、據(jù)庫ADO(ActiveX Data Objects)是微軟開發(fā)的基于對象的數(shù)據(jù)庫訪問中間件,它將數(shù)據(jù)庫操作抽象成為一個個對象,通過對這些對象的操作來完成數(shù)據(jù)庫應用程序設計。ADO對象模型包括以下關鍵對象:(1)Connection對象(連接對象)該對象成為連接對象,就是負責數(shù)據(jù)庫連接和斷開的對象,該對象在使用Open()函數(shù)打開數(shù)據(jù)庫連接開始,直到調(diào)用Close()關閉數(shù)據(jù)庫連接為止,它負責維護應用程序和數(shù)據(jù)庫管理系統(tǒng)的一個會話,保證在此之間的數(shù)據(jù)庫操作持續(xù)性。(2)Command對象(命令對象)使用SQL語句來操作數(shù)據(jù)庫是數(shù)據(jù)庫管理系統(tǒng)常用的手段,而在應用程序中往往需要借助該手段來簡化應用
30、程序設計,因此也需要傳遞SQL語句來進行數(shù)據(jù)庫操作。命令對象就是負責對一個數(shù)據(jù)源進行SQL命令傳遞和執(zhí)行等操作進行管理,如傳遞SQL語句字符串、執(zhí)行的次數(shù)和參數(shù)等。(3)Parameter對象(參數(shù)對象)參數(shù)對象是命令對象的輔助對象,主要用于命令對象的參數(shù)傳遞,這些參數(shù)本身就是一個對象,叫做參數(shù)對象。參數(shù)對象將一些操作定義好,然后直接以參數(shù)的形式被命令對象調(diào)用,以更簡單高效的方式對數(shù)據(jù)庫進行操作。(4)Recordset對象(記錄集對象)記錄集對象顧名思義就是表示記錄的集合的對象,它將數(shù)據(jù)庫中的記錄的全部或部分讀取到內(nèi)存中,然后將內(nèi)存中的對象經(jīng)命令對象處理后,寫回到硬盤的數(shù)據(jù)庫中。該對象在數(shù)據(jù)
31、庫記錄非常多的時候起到了提高數(shù)據(jù)庫操作效率的作用,使得應用程序不必每個操作都讀取硬盤數(shù)據(jù)庫,而是將全部操作在內(nèi)存中完成后再寫回硬盤。本節(jié)將基于ADO方式進行數(shù)據(jù)庫操作,包括記錄添加、記錄刪除、記錄更新等。以下,以訂單管理系統(tǒng)為例,通過ADO數(shù)據(jù)庫操作,實現(xiàn)產(chǎn)品添加、產(chǎn)品刪除、產(chǎn)品更新等功能。3.2.1 添加訂單管理系統(tǒng)二級菜單項的對話框和消息處理函數(shù)(1)啟動MFC Class Wizard在COrder_MISDlg類中為產(chǎn)品管理的二級菜單項“產(chǎn)品添加”、“產(chǎn)品刪除”和“產(chǎn)品修改”添加消息處理函數(shù)(如圖3-12所示)。圖3-12 添加產(chǎn)品管理二級菜單項的消息處理函數(shù)(2)在VC+6.0的主菜
32、單中選擇“Insert”-“Resource”-“Dialog”-“New”分別插入3個對話框IDD_DIALOG2、IDD_DIALOG3、IDD_DIALOG4,然后分別對這個三個對話框的界面進行設計(如圖3-13所示)。(3)啟動MFC Class Wizard分別為三個對話框中的編輯框(Edit Box)控件在各自對話框類中添加相應成員變量,將編輯框與變量綁定(如圖3-14所示)。 圖3-13 產(chǎn)品添加、刪除和修改對話框界面設計 圖3-14為產(chǎn)品添加、刪除和修改對話框添加新類和成員變量(4)打開ClassView面板,展開COrder_MISDlg類視圖(如圖3-15),為“產(chǎn)品添加”
33、、“產(chǎn)品刪除”和“產(chǎn)品修改”的消息處理函數(shù)OnProduct2()、OnProduct3()、OnProduct4()添加啟動對話框的代碼(藍色部分)。圖3-15為產(chǎn)品添加、刪除和修改對話框添加消息處理函數(shù)的代碼void COrder_MISDlg:OnProduct2() / TODO: Add your command handler code here CDialog2 dialog2; dialog2.DoModal(); void COrder_MISDlg:OnProduct3() / TODO: Add your command handler code here CDialog
34、3 dialog3; dialog3.DoModal(); void COrder_MISDlg:OnProduct4() / TODO: Add your command handler code here CDialog4 dialog4; dialog4.DoModal(); 文件前面添加如下包含對話框類頭文件的代碼:/ Order_MISDlg.cpp : implementation file#include "stdafx.h"#include "Order_MIS.h"#include "Order_MISDlg.h"#
35、include "Dialog1.h"#include "Dialog2.h"#include "Dialog3.h"#include "Dialog4.h"完成以上代碼后,點擊產(chǎn)品管理二級菜單項就可以啟動相應的對話框處理界面。3.2.2 訂單管理系統(tǒng)產(chǎn)品添加功能實現(xiàn)(1)打開“產(chǎn)品添加”對話框,雙擊“添加”按鈕添加處理函數(shù)OnButton1()。圖3-16為添加按鈕加入消息處理函數(shù)(2)展開ClassView類視圖,在Dialog2類的文件Dialog2.cpp中頭部引入數(shù)據(jù)庫接口文件,添加如下代碼(藍色部分):
36、#include "stdafx.h"#include "Order_MIS.h"#include "Dialog2.h"#import "c:Program FilesCommon FilesSystemADOmsado15.dll" rename_namespace("ADOCG") rename("EOF","EndOfFile")該行代碼是ADO數(shù)據(jù)庫連接必不可少的語句,它包含了msado15.dll文件,該文件實際上封裝了連接數(shù)據(jù)庫及其操作的底層
37、,并將其接口函數(shù)提供給開發(fā)者使用。(3)展開ClassView類視圖中,在Dialog2類的CDialog2:OnButton1()函數(shù)中添加如下代碼(藍色部分):void CDialog2:OnButton1() / TODO: Add your control notification handler code hereUpdateData(1); /讀取控件值 ADOCG:_ConnectionPtr m_pConnection; CoInitialize(NULL);m_pConnection.CreateInstance(_uuidof(ADOCG:Connection);/創(chuàng)建數(shù)據(jù)
38、庫連接對象ADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);/創(chuàng)建數(shù)據(jù)庫記錄對象CString pathName("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");pathName += "db1.mdb"try /數(shù)據(jù)庫連接到當前目錄下指定的數(shù)據(jù)庫文件m_pConnection->Open(pathName.AllocSysString(),"","
39、",ADOCG:adModeUnknown); catch(_com_error e)MessageBox("該路徑下沒有這個數(shù)據(jù)庫"); _variant_t vRecords;CString temp,temp2,sql= "select max(產(chǎn)品ID)+1 as max_id from 產(chǎn)品" m_pRecordset->Open(sql.AllocSysString(),_variant_t(IDispatch*)m_pConnection,true),ADOCG:adOpenStatic,ADOCG:adLockOptimi
40、stic,ADOCG:adCmdText);/打開數(shù)據(jù)集vRecords = m_pRecordset->GetCollect("max_id"); temp= (LPCSTR)(_bstr_t)vRecords; /SQL查詢得到下一條記錄的產(chǎn)品ID temp2=""" sql= "insert into 產(chǎn)品 values(" sql+=temp+"," sql+=temp2+m_edit1+temp2+","sql+=m_edit2+")" /SQL插入
41、新記錄m_pConnection->Execute(sql.AllocSysString(),&vRecords,ADOCG:adCmdText); /執(zhí)行SQL語句m_pRecordset->Update();if(m_pConnection->State)m_pConnection->Close(); /關閉數(shù)據(jù)庫連接 m_pConnection= NULL;MessageBox("成功添加新產(chǎn)品信息!","提示");CDialog:OnOK();注意:db1.mdb數(shù)據(jù)庫文件需要放在當前程序文件目錄下。完成以上代碼后
42、,按Ctrl+F5執(zhí)行后,點擊“產(chǎn)品添加”二級菜單項,即可在對話框處理界面中通過輸入新產(chǎn)品名稱和單價,添加新產(chǎn)品。3.2.3 訂單管理系統(tǒng)產(chǎn)品刪除功能實現(xiàn)(1)打開“產(chǎn)品刪除”對話框,雙擊“刪除”按鈕添加處理函數(shù)OnButton1()。圖3-17為刪除按鈕加入消息處理函數(shù)(2)展開ClassView類視圖,在Dialog3類的文件Dialog3.cpp中頭部引入數(shù)據(jù)庫接口文件,添加如下代碼(藍色部分):#include "stdafx.h"#include "Order_MIS.h"#include "Dialog3.h"#impor
43、t "c:Program FilesCommon FilesSystemADOmsado15.dll" rename_namespace("ADOCG") rename("EOF","EndOfFile")(3)展開ClassView類視圖中,在Dialog3類的CDialog3:OnButton1()函數(shù)中添加如下代碼(藍色部分):void CDialog3:OnButton1() / TODO: Add your control notification handler code here UpdateData
44、(1); ADOCG:_ConnectionPtr m_pConnection; CoInitialize(NULL);m_pConnection.CreateInstance(_uuidof(ADOCG:Connection);/創(chuàng)建數(shù)據(jù)庫連接對象ADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);/創(chuàng)建數(shù)據(jù)庫記錄對象CString pathName("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");pat
45、hName += "db1.mdb"try /數(shù)據(jù)庫連接到當前目錄下指定的數(shù)據(jù)庫文件m_pConnection->Open(pathName.AllocSysString(),"","",ADOCG:adModeUnknown); catch(_com_error e)MessageBox("該路徑下沒有這個數(shù)據(jù)庫"); _variant_t vRecords; m_pRecordset->Open("select * from 產(chǎn)品",_variant_t(IDispatch*)m
46、_pConnection,true),ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText);/打開數(shù)據(jù)集 CString temp=""" CString sql= "delete from 產(chǎn)品 where 產(chǎn)品名稱=" sql+=temp+m_edit1+temp; /定義SQL命令字串MessageBox("確定刪除該產(chǎn)品信息?","確認");m_pConnection->Execute(sql.AllocSysString(),
47、&vRecords,ADOCG:adCmdText); /執(zhí)行SQL刪除語句 m_pRecordset->Update();if(m_pConnection->State)m_pConnection->Close(); /關閉數(shù)據(jù)庫連接 m_pConnection= NULL;CDialog:OnOK();完成以上代碼后,按Ctrl+F5執(zhí)行后,點擊“產(chǎn)品刪除”二級菜單項,即可在對話框處理界面中刪除所輸入的產(chǎn)品。3.2.4 訂單管理系統(tǒng)產(chǎn)品修改功能實現(xiàn)(1)打開“產(chǎn)品修改”對話框,雙擊“查看”按鈕添加處理函數(shù)OnButton1(),雙擊“修改”按鈕添加處理函數(shù)OnBu
48、tton2()。(2)展開ClassView類視圖,在Dialog4類的文件Dialog4cpp中頭部引入數(shù)據(jù)庫接口文件,添加如下代碼(藍色部分):#include "stdafx.h"#include "Order_MIS.h"#include "Dialog4.h"#import "c:Program FilesCommon FilesSystemADOmsado15.dll" rename_namespace("ADOCG") rename("EOF","En
49、dOfFile")(3)展開ClassView類視圖,在Dialog4類的CDialog4:OnButton1()函數(shù)中添加如下代碼(藍色部分):void CDialog4:OnButton1() / TODO: Add your control notification handler code hereUpdateData(1); ADOCG:_ConnectionPtr m_pConnection; CoInitialize(NULL);m_pConnection.CreateInstance(_uuidof(ADOCG:Connection);/創(chuàng)建數(shù)據(jù)庫連接對象ADOCG:
50、_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);/創(chuàng)建數(shù)據(jù)庫記錄對象CString pathName("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");pathName += "db1.mdb"try /數(shù)據(jù)庫連接到當前目錄下指定的數(shù)據(jù)庫文件m_pConnection->Open(pathName.AllocSysString(),"","",ADOC
51、G:adModeUnknown); catch(_com_error e)MessageBox("該路徑下沒有這個數(shù)據(jù)庫"); _variant_t vRecords; CString temp=""" CString sql= "select * from 產(chǎn)品 where 產(chǎn)品名稱=" sql+=temp+m_edit1+temp; /定義SQL命令字串 m_pRecordset->Open(sql.AllocSysString(),_variant_t(IDispatch*)m_pConnection,true)
52、,ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText);/打開數(shù)據(jù)集 vRecords = m_pRecordset->GetCollect("產(chǎn)品ID"); m_edit2= (LPCSTR)(_bstr_t)vRecords; vRecords = m_pRecordset->GetCollect("產(chǎn)品名稱"); m_edit3= (LPCSTR)(_bstr_t)vRecords; vRecords = m_pRecordset->GetCollect("
53、產(chǎn)品單價"); m_edit4= (LPCSTR)(_bstr_t)vRecords; if(m_pConnection->State)m_pConnection->Close(); /關閉數(shù)據(jù)庫連接 m_pConnection= NULL;UpdateData(0);(4)展開ClassView類視圖中,在Dialog4類的CDialog4:OnButton2()函數(shù)中添加如下代碼(藍色部分):void CDialog4:OnButton2() / TODO: Add your control notification handler code hereUpdateDa
54、ta(1); ADOCG:_ConnectionPtr m_pConnection; CoInitialize(NULL);m_pConnection.CreateInstance(_uuidof(ADOCG:Connection);/創(chuàng)建數(shù)據(jù)庫連接對象ADOCG:_RecordsetPtr m_pRecordset;m_pRecordset.CreateInstance(_uuidof(ADOCG:Recordset);/創(chuàng)建數(shù)據(jù)庫記錄對象CString pathName("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");p
55、athName += "db1.mdb"try /數(shù)據(jù)庫連接到當前目錄下指定的數(shù)據(jù)庫文件m_pConnection->Open(pathName.AllocSysString(),"","",ADOCG:adModeUnknown); catch(_com_error e)MessageBox("該路徑下沒有這個數(shù)據(jù)庫"); _variant_t vRecords;m_pRecordset->Open("select * from 產(chǎn)品",_variant_t(IDispatch*)
56、m_pConnection,true),ADOCG:adOpenStatic,ADOCG:adLockOptimistic,ADOCG:adCmdText);/打開數(shù)據(jù)集 CString temp=""" CString sql= "update 產(chǎn)品 set 產(chǎn)品ID=" sql+=m_edit2;sql+=",產(chǎn)品單價="+m_edit4; sql+=" where 產(chǎn)品名稱="+temp+m_edit3+temp;/定義SQL命令字符串MessageBox("確定修改該產(chǎn)品信息?","確認");m_pConnection->Execute(sql.AllocSysString(),&vRecords,ADOCG:adCmdText); /執(zhí)行SQL刪除語句 m_pRecordset->Update();if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人文化創(chuàng)意產(chǎn)業(yè)股份轉讓合同協(xié)議書4篇
- 2025年美容美發(fā)服務銷售合同規(guī)范范本
- 2025年度智能家居裝修定制服務協(xié)議3篇
- 2025年中建二局安裝工程有限公司招聘筆試參考題庫含答案解析
- 2025年福建三明港務置業(yè)有限公司招聘筆試參考題庫含答案解析
- 二零二五年度城市軌道交通建設投資合同4篇
- 2025年江西國際經(jīng)濟技術合作公司招聘筆試參考題庫含答案解析
- 2025年湖北咸寧市咸安區(qū)經(jīng)發(fā)集團招聘筆試參考題庫含答案解析
- 2025年山東青島平度市自來水公司招聘筆試參考題庫含答案解析
- 2025年度個人房產(chǎn)買賣全程監(jiān)理合同4篇
- 河北省大學生調(diào)研河北社會調(diào)查活動項目申請書
- GB/T 20920-2007電子水平儀
- 如何提高教師的課程領導力
- 企業(yè)人員組織結構圖
- 日本疾病診斷分組(DPC)定額支付方式課件
- 兩段焙燒除砷技術簡介 - 文字版(1)(2)課件
- 實習證明模板免費下載【8篇】
- 復旦大學用經(jīng)濟學智慧解讀中國課件03用大歷史觀看中國社會轉型
- 案件受理登記表模版
- 2022年浙江省嘉興市中考數(shù)學試題(Word版)
- 最新焊接工藝評定表格
評論
0/150
提交評論