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

下載本文檔

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

文檔簡介

關(guān)于用VB開發(fā)數(shù)據(jù)庫應(yīng)用程序?qū)嵗?頁,講稿共48頁,2023年5月2日,星期三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

第2頁,講稿共48頁,2023年5月2日,星期三示例1示例1說明

示例1控件的屬性設(shè)置示例1程序代碼示例1實現(xiàn)過程展示第3頁,講稿共48頁,2023年5月2日,星期三示例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ù)源的重新查詢。

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

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

第6頁,講稿共48頁,2023年5月2日,星期三示例1控件的屬性設(shè)置對象名屬性名屬性值A(chǔ)dodcStudentConnectionString連接到SQLServer的“學(xué)生管理”數(shù)據(jù)庫CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFieldSnoTxtSnameDataSourceAdodcStudent

DataFieldSnameTxtSsexDataSourceAdodcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept第7頁,講稿共48頁,2023年5月2日,星期三示例1程序代碼“退出”按鈕單擊(Click)鼠標(biāo)事件程序代碼“查找”按鈕單擊(Click)鼠標(biāo)事件程序代碼窗體加載(Load事件)時初始化程序代碼第8頁,講稿共48頁,2023年5月2日,星期三“退出”按鈕單擊(Click)鼠標(biāo)事件程序代碼PrivateSubCmdExit_Click()'"退出"按鈕

EndEndSub

第9頁,講稿共48頁,2023年5月2日,星期三“查找”按鈕單擊(Click)鼠標(biāo)事件程序代碼PrivateSubCmdSearch_Click()'"查找"按鈕IfLen(TxtSearchDept.Text)>0Then'如果用戶指定了系名

AdodcStudent.CommandType=adCmdTextAdodcStudent.RecordSource=“select*fromstudentwhereSdept=‘“&Trim(TxtSearchDept.Text)&“‘“AdodcStudent.Refresh'使所設(shè)置的屬性生效

Else'若用戶未指定列名

MsgBox(“請指定要查找的系”)'則提示用戶輸入系名

EndIfEndSub

第10頁,講稿共48頁,2023年5月2日,星期三窗體加載(Load事件)時初始化程序代碼PrivateSubForm_Load()

'窗體加載時初始化查找系的內(nèi)容

'初始化要查找的系為空

TxtSearchDept.Text=""EndSub第11頁,講稿共48頁,2023年5月2日,星期三示例1實現(xiàn)過程展示設(shè)置控件和屬性第12頁,講稿共48頁,2023年5月2日,星期三編寫程序代碼第13頁,講稿共48頁,2023年5月2日,星期三執(zhí)行程序觀察結(jié)果第14頁,講稿共48頁,2023年5月2日,星期三觀察查找前后的結(jié)果第15頁,講稿共48頁,2023年5月2日,星期三示例2示例2說明

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

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

第17頁,講稿共48頁,2023年5月2日,星期三示例2窗體布局第18頁,講稿共48頁,2023年5月2日,星期三新增各命令按鈕控件的對象名分別為:

“添加”命令按鈕:cmdAdd

“刪除”命令按鈕:cmdDel

“更新”命令按鈕:cmdUpdate

“取消”命令按鈕:cmdCancel

“第一條”命令按鈕:cmdFirst

“上一條”命令按鈕:cmdPrevious

“下一條”命令按鈕:cmdNext

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

第19頁,講稿共48頁,2023年5月2日,星期三示例2控件的屬性設(shè)置示例2窗體上的ADO數(shù)據(jù)控件以及各文本框控件的屬性設(shè)置同示例1。為了在運行時隱藏ADO數(shù)據(jù)控件,我們將AdodcStudent的Visible屬性設(shè)置為:False。

第20頁,講稿共48頁,2023年5月2日,星期三示例2程序代碼窗體啟動時的初始化代碼數(shù)據(jù)操作按鈕組代碼“添加”命令按鈕“取消”命令按鈕

“刪除”命令按鈕

“更新”命令按鈕

移動指針方法組代碼

“第一條”命令按鈕

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

“上一條”命令按鈕

結(jié)束程序代碼

第21頁,講稿共48頁,2023年5月2日,星期三窗體啟動時的初始化代碼PrivateSubForm_Load()

'初始時使“取消”按鈕為不可用狀態(tài)

CmdCancel.Enabled=FalseEndSub第22頁,講稿共48頁,2023年5月2日,星期三“添加”命令按鈕PrivateSubCmdAdd_Click()'“添加”命令按鈕

AdodcStudent.Recordset.AddNew

'使“添加”和“刪除”按鈕為不可用狀態(tài)

CmdAdd.Enabled=FalseCmdDel.Enabled=False

'使“更改”和“取消”按鈕為可用狀態(tài)

CmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueEndSub第23頁,講稿共48頁,2023年5月2日,星期三“取消”命令按鈕PrivateSubCmdCancel_Click()'“取消”命令按鈕

AdodcStudent.Recordset.CancelUpdate

'使“添加”和“刪除”按鈕為可用狀態(tài)

CmdAdd.Enabled=TrueCmdDel.Enabled=True

'使“取消”按鈕為不可用狀態(tài)

CmdCancel.Enabled=FalseEndSub第24頁,講稿共48頁,2023年5月2日,星期三“刪除”命令按鈕PrivateSubCmdDel_Click()'“刪除”命令按鈕

DimresAsIntegerres=MsgBox("確實要刪除此行記錄嗎?",_vbExclamation+vbYesNo+vbDefaultButton2)'提示用戶

Ifres=vbYesThen'如果確實要刪除

AdodcStudent.Recordset.DeleteAdodcStudent.Recordset.MoveNextIfAdodcStudent.Recordset.EOF=TrueThenAdodcStudent.Recordset.MoveLastEndIfEndIfEndSub第25頁,講稿共48頁,2023年5月2日,星期三“更新”命令按鈕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第26頁,講稿共48頁,2023年5月2日,星期三“第一條”命令按鈕'“第一條”命令按鈕PrivateSubCmdFirst_Click()AdodcStudent.Recordset.MoveFirstEndSub第27頁,講稿共48頁,2023年5月2日,星期三“末一條”命令按鈕'“末一條”命令按鈕PrivateSubCmdLast_Click()AdodcStudent.Recordset.MoveLastEndSub第28頁,講稿共48頁,2023年5月2日,星期三“下一條”命令按鈕'“下一條”命令按鈕PrivateSubCmdNext_Click()AdodcStudent.Recordset.MoveNextIfAdodcStudent.Recordset.EOF=TrueThen

'如果已經(jīng)移到了最后一行之后,則將指針定位在最后一行

AdodcStudent.Recordset.MoveLastEndIfEndSub第29頁,講稿共48頁,2023年5月2日,星期三“上一條”命令按鈕'“上一條”命令按鈕PrivateSubCmdPrevious_Click()AdodcStudent.Recordset.MovePreviousIfAdodcStudent.Recordset.BOF=TrueThen

'如果已經(jīng)移到了第一行之前,則將指針定位在第一行

AdodcStudent.Recordset.MoveFirstEndIfEndSub第30頁,講稿共48頁,2023年5月2日,星期三結(jié)束程序代碼'“退出”命令按鈕PrivateSubCmdExit_Click()EndEndSub第31頁,講稿共48頁,2023年5月2日,星期三示例2實現(xiàn)過程展示設(shè)置控件和屬性第32頁,講稿共48頁,2023年5月2日,星期三編寫程序代碼第33頁,講稿共48頁,2023年5月2日,星期三執(zhí)行程序觀察結(jié)果第34頁,講稿共48頁,2023年5月2日,星期三示例3示例3說明

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

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

Form2上的代碼Form2上的初始化dtgCond控件代碼Form2上的Load事件代碼Form2上“返回”按鈕代碼第39頁,講稿共48頁,2023年5月2日,星期三Form1上的“查找”和“退出”命令按鈕代碼PrivateSubCmdExit_Click()'"退出"按鈕

EndEndSub

PrivateSubCmdSearch_Click()'"查找"按鈕

Form2.Show'顯示Form2窗體EndSub第40頁,講稿共48頁,2023年5月2日,星期三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第41頁,講稿共48頁,2023年5月2日,星期三Form2上的Load事件代碼PrivateSubForm_Load()DimstrSnoAsStringDimstrSelectAsStringstrSno=Trim(Form1.TxtSno.Text)'得到Form1窗體上當(dāng)前顯示的學(xué)號的值

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論