用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗齙第1頁
用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗齙第2頁
用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗齙第3頁
用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗齙第4頁
用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗齙第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

用開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗谝豁?,共四十七頁?022年,8月28日VB數(shù)據(jù)庫編程舉例本節(jié)結(jié)合“學(xué)生管理數(shù)據(jù)庫”以及其中的三張表,利用數(shù)據(jù)訪問接口技術(shù)和ADO數(shù)據(jù)控件以及數(shù)據(jù)綁定控件,介紹在VisualBasic中開發(fā)數(shù)據(jù)庫應(yīng)用程序的過程。

示例1

示例2

示例3

第二頁,共四十七頁,2022年,8月28日示例1示例1說明

示例1控件的屬性設(shè)置示例1程序代碼示例1實現(xiàn)過程展示第三頁,共四十七頁,2022年,8月28日示例1說明本示例說明如何利用ADO數(shù)據(jù)控件實現(xiàn)對Student表中全部數(shù)據(jù)的瀏覽,以及如何實現(xiàn)按用戶指定的系查找相應(yīng)學(xué)生信息的功能。數(shù)據(jù)瀏覽方式采用單行瀏覽方式,即一次查看一條記錄。通過本示例我們可以看到,設(shè)置好ADO數(shù)據(jù)控件的屬性后,用戶不需要編制任何代碼就可以實現(xiàn)對數(shù)據(jù)的查詢。如果查找條件變化了,用戶只需要編寫很少的代碼就可以實現(xiàn)對數(shù)據(jù)源的重新查詢。

第四頁,共四十七頁,2022年,8月28日示例1窗體布局第五頁,共四十七頁,2022年,8月28日其中“學(xué)號”、“姓名”、“性別”、“年齡”、“所在系”及“查找系”用標(biāo)簽控件(Label)實現(xiàn)。對Student表中的各列數(shù)據(jù)用文本框控件(TextBox)實現(xiàn),界面上各文本框控件內(nèi)顯示的內(nèi)容為此文本框的對象名。ADO數(shù)據(jù)控件對象名AdodcStudent。

“查找”命令按鈕的對象名為“cmdSearch”,“退出”命令按鈕的對象名為“cmdExit”。

第六頁,共四十七頁,2022年,8月28日示例1控件的屬性設(shè)置對象名屬性名屬性值A(chǔ)dodcStudentConnectionString連接到SQLServer的“學(xué)生管理”數(shù)據(jù)庫CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFieldSnoTxtSnameDataSourceAdodcStudent

DataFieldSnameTxtSsexDataSourceAdodcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept第七頁,共四十七頁,2022年,8月28日示例1程序代碼“退出”按鈕單擊(Click)鼠標(biāo)事件程序代碼“查找”按鈕單擊(Click)鼠標(biāo)事件程序代碼窗體加載(Load事件)時初始化程序代碼第八頁,共四十七頁,2022年,8月28日“退出”按鈕單擊(Click)鼠標(biāo)事件程序代碼PrivateSubCmdExit_Click()'"退出"按鈕EndEndSub

第九頁,共四十七頁,2022年,8月28日“查找”按鈕單擊(Click)鼠標(biāo)事件程序代碼PrivateSubCmdSearch_Click()'"查找"按鈕IfLen(TxtSearchDept.Text)>0Then'如果用戶指定了系名AdodcStudent.CommandType=adCmdTextAdodcStudent.RecordSource=“select*fromstudentwhereSdept=‘“&Trim(TxtSearchDept.Text)&“‘“AdodcStudent.Refresh'使所設(shè)置的屬性生效Else'若用戶未指定列名MsgBox(“請指定要查找的系”)'則提示用戶輸入系名EndIfEndSub

第十頁,共四十七頁,2022年,8月28日窗體加載(Load事件)時初始化程序代碼PrivateSubForm_Load()

'窗體加載時初始化查找系的內(nèi)容'初始化要查找的系為空TxtSearchDept.Text=""EndSub第十一頁,共四十七頁,2022年,8月28日示例1實現(xiàn)過程展示設(shè)置控件和屬性第十二頁,共四十七頁,2022年,8月28日編寫程序代碼第十三頁,共四十七頁,2022年,8月28日執(zhí)行程序觀察結(jié)果第十四頁,共四十七頁,2022年,8月28日觀察查找前后的結(jié)果第十五頁,共四十七頁,2022年,8月28日示例2示例2說明

示例2控件的屬性設(shè)置示例2程序代碼示例2實現(xiàn)過程展示第十六頁,共四十七頁,2022年,8月28日示例2說明示例2在示例1的基礎(chǔ)上增加了兩組供用戶操作的按鈕。一組是為了說明如何實現(xiàn)數(shù)據(jù)更改操作,即如何使用Recordset對象的AddNew、Update、Delete和CancelUpdate方法;另一組是為了說明如何編程控制結(jié)果集中瀏覽記錄的移動,即如何使用Recordset對象的Move方法組。

在這個示例中我們不使用ADO數(shù)據(jù)庫控件移動記錄,而是使用四個命令按鈕實現(xiàn)此功能,因此在運行時將ADO數(shù)據(jù)控件隱藏起來。

第十七頁,共四十七頁,2022年,8月28日示例2窗體布局第十八頁,共四十七頁,2022年,8月28日新增各命令按鈕控件的對象名分別為:

“添加”命令按鈕:cmdAdd

“刪除”命令按鈕:cmdDel

“更新”命令按鈕:cmdUpdate

“取消”命令按鈕:cmdCancel

“第一條”命令按鈕:cmdFirst

“上一條”命令按鈕:cmdPrevious

“下一條”命令按鈕:cmdNext

“末一條”命令按鈕:cmdLast“退出”命令按鈕:cmdExit

第十九頁,共四十七頁,2022年,8月28日示例2控件的屬性設(shè)置示例2窗體上的ADO數(shù)據(jù)控件以及各文本框控件的屬性設(shè)置同示例1。為了在運行時隱藏ADO數(shù)據(jù)控件,我們將AdodcStudent的Visible屬性設(shè)置為:False。

第二十頁,共四十七頁,2022年,8月28日示例2程序代碼窗體啟動時的初始化代碼數(shù)據(jù)操作按鈕組代碼“添加”命令按鈕“取消”命令按鈕

“刪除”命令按鈕

“更新”命令按鈕

移動指針方法組代碼

“第一條”命令按鈕

“末一條”命令按鈕“下一條”命令按鈕

“上一條”命令按鈕

結(jié)束程序代碼

第二十一頁,共四十七頁,2022年,8月28日窗體啟動時的初始化代碼PrivateSubForm_Load()

'初始時使“取消”按鈕為不可用狀態(tài)CmdCancel.Enabled=FalseEndSub第二十二頁,共四十七頁,2022年,8月28日“添加”命令按鈕PrivateSubCmdAdd_Click()'“添加”命令按鈕

'使“添加”和“刪除”按鈕為不可用狀態(tài)CmdAdd.Enabled=FalseCmdDel.Enabled=False

'使“更改”和“取消”按鈕為可用狀態(tài)CmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueEndSub第二十三頁,共四十七頁,2022年,8月28日“取消”命令按鈕PrivateSubCmdCancel_Click()'“取消”命令按鈕

'使“添加”和“刪除”按鈕為可用狀態(tài)CmdAdd.Enabled=TrueCmdDel.Enabled=True

'使“取消”按鈕為不可用狀態(tài)CmdCancel.Enabled=FalseEndSub第二十四頁,共四十七頁,2022年,8月28日“刪除”命令按鈕PrivateSubCmdDel_Click()'“刪除”命令按鈕DimresAsIntegerres=MsgBox("確實要刪除此行記錄嗎?",_vbExclamation+vbYesNo+vbDefaultButton2)'提示用戶Ifres=vbYesThen'如果確實要刪除IfAdodcStudent.Recordset.EOF=TrueThenEndIfEndIfEndSub第二十五頁,共四十七頁,2022年,8月28日“更新”命令按鈕PrivateSubCmdUpdate_Click()'“更新”命令按鈕

'將文本框中的當(dāng)前值寫入結(jié)果集相應(yīng)字段中AdodcStudent.Recordset.Fields("Sno")=Trim(TxtSno.Text)AdodcStudent.Recordset.Fields("Sname")=Trim(TxtSname.Text)AdodcStudent.Recordset.Fields("Ssex")=Trim(TxtSsex.Text)AdodcStudent.Recordset.Fields("Sage")=CInt(Trim(TxtSage.Text))AdodcStudent.Recordset.Fields("Sdept")=Trim(TxtSdept.Text)AdodcStudent.Recordset.Update'使更新生效

'使“添加”和“刪除”按鈕為可用狀態(tài)CmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdCancel.Enabled=False'使“取消”按鈕為不可用狀態(tài)EndSub第二十六頁,共四十七頁,2022年,8月28日“第一條”命令按鈕'“第一條”命令按鈕EndSub第二十七頁,共四十七頁,2022年,8月28日“末一條”命令按鈕'“末一條”命令按鈕EndSub第二十八頁,共四十七頁,2022年,8月28日“下一條”命令按鈕'“下一條”命令按鈕IfAdodcStudent.Recordset.EOF=TrueThen

'如果已經(jīng)移到了最后一行之后,則將指針定位在最后一行EndIfEndSub第二十九頁,共四十七頁,2022年,8月28日“上一條”命令按鈕'“上一條”命令按鈕IfAdodcStudent.Recordset.BOF=TrueThen

'如果已經(jīng)移到了第一行之前,則將指針定位在第一行EndIfEndSub第三十頁,共四十七頁,2022年,8月28日結(jié)束程序代碼'“退出”命令按鈕PrivateSubCmdExit_Click()EndEndSub第三十一頁,共四十七頁,2022年,8月28日示例2實現(xiàn)過程展示設(shè)置控件和屬性第三十二頁,共四十七頁,2022年,8月28日編寫程序代碼第三十三頁,共四十七頁,2022年,8月28日執(zhí)行程序觀察結(jié)果第三十四頁,共四十七頁,2022年,8月28日示例3示例3說明

示例3控件的屬性設(shè)置示例3程序代碼示例3實現(xiàn)過程展示第三十五頁,共四十七頁,2022年,8月28日示例3說明示例3在示例1的基礎(chǔ)上增加了一個窗體,這個窗體用DataGrid控件顯示數(shù)據(jù)。示例3中的兩個窗體的布局分別圖1和圖2所示。圖1Form1布局圖2Form2布局第三十六頁,共四十七頁,2022年,8月28日在圖所示的Form1上,當(dāng)用戶單擊“查找”命令按鈕時,顯示Form2。Form2上DataGrid中的數(shù)據(jù)是根據(jù)Form1中當(dāng)前顯示的學(xué)號值去查找此學(xué)生的姓名、所修的課程名、課程的學(xué)分以及考試成績。在Form2上單擊“返回”命令按鈕(對象名為cmdReturn),可以返回到Form1,并且同時卸載Form2。

第三十七頁,共四十七頁,2022年,8月28日示例3控件的屬性設(shè)置Form1窗體上各控件屬性的設(shè)置同示例1。Form2窗體DataGrid數(shù)據(jù)綁定控件的對象名為:dtgCondDtgCond控件的列屬性在程序代碼中設(shè)置。ADO數(shù)據(jù)控件名為:AdodcGridConnectionString屬性的值同示例1的AdodcStudentCommandType和RecordSource屬性我們在程序代碼中設(shè)置。第三十八頁,共四十七頁,2022年,8月28日示例3程序代碼Form1上的“查找”和“退出”命令按鈕代碼

Form2上的代碼Form2上的初始化dtgCond控件代碼Form2上的Load事件代碼Form2上“返回”按鈕代碼第三十九頁,共四十七頁,2022年,8月28日Form1上的“查找”和“退出”命令按鈕代碼PrivateSubCmdExit_Click()'"退出"按鈕EndEndSub

PrivateSubCmdSearch_Click()'"查找"按鈕Form2.Show'顯示Form2窗體EndSub第四十頁,共四十七頁,2022年,8月28日Form2上的初始化dtgCond控件代碼PrivateSubInitGrid()'初始化dtgCond控件WithDtgCond

'設(shè)置DtgCond的列標(biāo)題.Columns(0).Caption="學(xué)號".Columns(1).Caption="課程名".Columns(2).Caption="學(xué)分".Columns(3).Caption="成績"

'設(shè)置DtgCond的列寬.Columns(0).Width=1000.Columns(1).Width=2000.Columns(2).Width=800.Columns(3).Width=800EndWithEndSub第四十一頁,共四十七頁,2022年,8月28日Form2上的Load事件代碼PrivateSubForm_Load()DimstrSnoAsStringDimstrSelectAsStringstrSno=Trim(Form1.TxtSno.Text)'得到Form1窗體上當(dāng)前顯示的學(xué)號的值

‘編寫滿足要求的查詢語句,查找學(xué)號值等于給定值的學(xué)生的姓名、‘修的課程名、學(xué)分和成績strS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論