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

下載本文檔

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

文檔簡(jiǎn)介

關(guān)于用VB開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序?qū)嵗齎B數(shù)據(jù)庫(kù)編程舉例本節(jié)結(jié)合“學(xué)生管理數(shù)據(jù)庫(kù)”以及其中的三張表,利用數(shù)據(jù)訪問(wèn)接口技術(shù)和ADO數(shù)據(jù)控件以及數(shù)據(jù)綁定控件,介紹在VisualBasic中開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序的過(guò)程。

示例1

示例2

示例3

第2頁(yè),共48頁(yè),2024年2月25日,星期天示例1示例1說(shuō)明

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

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

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

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

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

EndEndSub

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

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

Else'若用戶未指定列名

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

EndIfEndSub

第10頁(yè),共48頁(yè),2024年2月25日,星期天窗體加載(Load事件)時(shí)初始化程序代碼PrivateSubForm_Load()

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

'初始化要查找的系為空

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

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

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

第17頁(yè),共48頁(yè),2024年2月25日,星期天示例2窗體布局第18頁(yè),共48頁(yè),2024年2月25日,星期天新增各命令按鈕控件的對(duì)象名分別為:

“添加”命令按鈕:cmdAdd

“刪除”命令按鈕:cmdDel

“更新”命令按鈕:cmdUpdate

“取消”命令按鈕:cmdCancel

“第一條”命令按鈕:cmdFirst

“上一條”命令按鈕:cmdPrevious

“下一條”命令按鈕:cmdNext

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

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

第20頁(yè),共48頁(yè),2024年2月25日,星期天示例2程序代碼窗體啟動(dòng)時(shí)的初始化代碼數(shù)據(jù)操作按鈕組代碼“添加”命令按鈕“取消”命令按鈕

“刪除”命令按鈕

“更新”命令按鈕

移動(dòng)指針?lè)椒ńM代碼

“第一條”命令按鈕

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

“上一條”命令按鈕

結(jié)束程序代碼

第21頁(yè),共48頁(yè),2024年2月25日,星期天窗體啟動(dòng)時(shí)的初始化代碼PrivateSubForm_Load()

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

CmdCancel.Enabled=FalseEndSub第22頁(yè),共48頁(yè),2024年2月25日,星期天“添加”命令按鈕PrivateSubCmdAdd_Click()'“添加”命令按鈕

AdodcStudent.Recordset.AddNew

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

CmdAdd.Enabled=FalseCmdDel.Enabled=False

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

CmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueEndSub第23頁(yè),共48頁(yè),2024年2月25日,星期天“取消”命令按鈕PrivateSubCmdCancel_Click()'“取消”命令按鈕

AdodcStudent.Recordset.CancelUpdate

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

CmdAdd.Enabled=TrueCmdDel.Enabled=True

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

CmdCancel.Enabled=FalseEndSub第24頁(yè),共48頁(yè),2024年2月25日,星期天“刪除”命令按鈕PrivateSubCmdDel_Click()'“刪除”命令按鈕

DimresAsIntegerres=MsgBox("確實(shí)要?jiǎng)h除此行記錄嗎?",_vbExclamation+vbYesNo+vbDefaultButton2)'提示用戶

Ifres=vbYesThen'如果確實(shí)要?jiǎng)h除

AdodcStudent.Recordset.DeleteAdodcStudent.Recordset.MoveNextIfAdodcStudent.Recordset.EOF=TrueThenAdodcStudent.Recordset.MoveLastEndIfEndIfEndSub第25頁(yè),共48頁(yè),2024年2月25日,星期天“更新”命令按鈕PrivateSubCmdUpdate_Click()'“更新”命令按鈕

'將文本框中的當(dāng)前值寫(xiě)入結(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頁(yè),共48頁(yè),2024年2月25日,星期天“第一條”命令按鈕'“第一條”命令按鈕PrivateSubCmdFirst_Click()AdodcStudent.Recordset.MoveFirstEndSub第27頁(yè),共48頁(yè),2024年2月25日,星期天“末一條”命令按鈕'“末一條”命令按鈕PrivateSubCmdLast_Click()AdodcStudent.Recordset.MoveLastEndSub第28頁(yè),共48頁(yè),2024年2月25日,星期天“下一條”命令按鈕'“下一條”命令按鈕PrivateSubCmdNext_Click()AdodcStudent.Recordset.MoveNextIfAdodcStudent.Recordset.EOF=TrueThen

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

AdodcStudent.Recordset.MoveLastEndIfEndSub第29頁(yè),共48頁(yè),2024年2月25日,星期天“上一條”命令按鈕'“上一條”命令按鈕PrivateSubCmdPrevious_Click()AdodcStudent.Recordset.MovePreviousIfAdodcStudent.Recordset.BOF=TrueThen

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

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

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

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

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

EndEndSub

PrivateSubCmdSearch_Click()'"查找"按鈕

Form2.Show'顯示Form2窗體EndSub第40頁(yè),共48頁(yè),2024年2月25日,星期天Form2上的初始化dtgCond控件代碼PrivateSubInitGrid()'初始化dtgCond控件

WithDtgCond

'設(shè)置DtgCond的列標(biāo)題

.Columns(0).Caption="學(xué)號(hào)".Columns(1).Caption="課程名".Columns(2).Caption="學(xué)分".Columns(3).Caption="成績(jī)"

'設(shè)置DtgCond的列寬

.Columns(0).Width=1000.Columns(1).Width=2000.Columns(2).Width=800.Columns(3).Width=800EndWithEndSub第41頁(yè),共48頁(yè),2024年2月25日,星期天Form2上的Load事件代碼PrivateSubForm_Load()DimstrSnoAsStringDimstrSelectAsStringstrSno=Trim(Form1.TxtSno.Text)'得到Form1窗體上當(dāng)前顯示的學(xué)號(hào)的值

‘編寫(xiě)滿足要求的查詢語(yǔ)句,查找學(xué)號(hào)值等于給定值的學(xué)生的姓名、‘修的課程名、學(xué)分和成績(jī)

strSelect=“sel

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論