用开发数据库应用程序实例_第1页
用开发数据库应用程序实例_第2页
用开发数据库应用程序实例_第3页
用开发数据库应用程序实例_第4页
用开发数据库应用程序实例_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用开发数据库应用程序实例第一页,共四十七页,2022年,8月28日VB数据库编程举例本节结合“学生管理数据库”以及其中的三张表,利用数据访问接口技术和ADO数据控件以及数据绑定控件,介绍在VisualBasic中开发数据库应用程序的过程。

示例1

示例2

示例3

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

示例1控件的属性设置示例1程序代码示例1实现过程展示第三页,共四十七页,2022年,8月28日示例1说明本示例说明如何利用ADO数据控件实现对Student表中全部数据的浏览,以及如何实现按用户指定的系查找相应学生信息的功能。数据浏览方式采用单行浏览方式,即一次查看一条记录。通过本示例我们可以看到,设置好ADO数据控件的属性后,用户不需要编制任何代码就可以实现对数据的查询。如果查找条件变化了,用户只需要编写很少的代码就可以实现对数据源的重新查询。

第四页,共四十七页,2022年,8月28日示例1窗体布局第五页,共四十七页,2022年,8月28日其中“学号”、“姓名”、“性别”、“年龄”、“所在系”及“查找系”用标签控件(Label)实现。对Student表中的各列数据用文本框控件(TextBox)实现,界面上各文本框控件内显示的内容为此文本框的对象名。ADO数据控件对象名AdodcStudent。

“查找”命令按钮的对象名为“cmdSearch”,“退出”命令按钮的对象名为“cmdExit”。

第六页,共四十七页,2022年,8月28日示例1控件的属性设置对象名属性名属性值AdodcStudentConnectionString连接到SQLServer的“学生管理”数据库CommandTypeadCmdTableRecordSourceStudentTxtSnoDataSourceAdodcStudentDataFieldSnoTxtSnameDataSourceAdodcStudent

DataFieldSnameTxtSsexDataSourceAdodcStudentDataFieldSsexTxtSageDataSourceAdodcStudentDataFieldSageTxtSdeptDataSourceAdodcStudentDataFieldSdept第七页,共四十七页,2022年,8月28日示例1程序代码“退出”按钮单击(Click)鼠标事件程序代码“查找”按钮单击(Click)鼠标事件程序代码窗体加载(Load事件)时初始化程序代码第八页,共四十七页,2022年,8月28日“退出”按钮单击(Click)鼠标事件程序代码PrivateSubCmdExit_Click()'"退出"按钮EndEndSub

第九页,共四十七页,2022年,8月28日“查找”按钮单击(Click)鼠标事件程序代码PrivateSubCmdSearch_Click()'"查找"按钮IfLen(TxtSearchDept.Text)>0Then'如果用户指定了系名AdodcStudent.CommandType=adCmdTextAdodcStudent.RecordSource=“select*fromstudentwhereSdept=‘“&Trim(TxtSearchDept.Text)&“‘“AdodcStudent.Refresh'使所设置的属性生效Else'若用户未指定列名MsgBox(“请指定要查找的系”)'则提示用户输入系名EndIfEndSub

第十页,共四十七页,2022年,8月28日窗体加载(Load事件)时初始化程序代码PrivateSubForm_Load()

'窗体加载时初始化查找系的内容'初始化要查找的系为空TxtSearchDept.Text=""EndSub第十一页,共四十七页,2022年,8月28日示例1实现过程展示设置控件和属性第十二页,共四十七页,2022年,8月28日编写程序代码第十三页,共四十七页,2022年,8月28日执行程序观察结果第十四页,共四十七页,2022年,8月28日观察查找前后的结果第十五页,共四十七页,2022年,8月28日示例2示例2说明

示例2控件的属性设置示例2程序代码示例2实现过程展示第十六页,共四十七页,2022年,8月28日示例2说明示例2在示例1的基础上增加了两组供用户操作的按钮。一组是为了说明如何实现数据更改操作,即如何使用Recordset对象的AddNew、Update、Delete和CancelUpdate方法;另一组是为了说明如何编程控制结果集中浏览记录的移动,即如何使用Recordset对象的Move方法组。

在这个示例中我们不使用ADO数据库控件移动记录,而是使用四个命令按钮实现此功能,因此在运行时将ADO数据控件隐藏起来。

第十七页,共四十七页,2022年,8月28日示例2窗体布局第十八页,共四十七页,2022年,8月28日新增各命令按钮控件的对象名分别为:

“添加”命令按钮:cmdAdd

“删除”命令按钮:cmdDel

“更新”命令按钮:cmdUpdate

“取消”命令按钮:cmdCancel

“第一条”命令按钮:cmdFirst

“上一条”命令按钮:cmdPrevious

“下一条”命令按钮:cmdNext

“末一条”命令按钮:cmdLast“退出”命令按钮:cmdExit

第十九页,共四十七页,2022年,8月28日示例2控件的属性设置示例2窗体上的ADO数据控件以及各文本框控件的属性设置同示例1。为了在运行时隐藏ADO数据控件,我们将AdodcStudent的Visible属性设置为:False。

第二十页,共四十七页,2022年,8月28日示例2程序代码窗体启动时的初始化代码数据操作按钮组代码“添加”命令按钮“取消”命令按钮

“删除”命令按钮

“更新”命令按钮

移动指针方法组代码

“第一条”命令按钮

“末一条”命令按钮“下一条”命令按钮

“上一条”命令按钮

结束程序代码

第二十一页,共四十七页,2022年,8月28日窗体启动时的初始化代码PrivateSubForm_Load()

'初始时使“取消”按钮为不可用状态CmdCancel.Enabled=FalseEndSub第二十二页,共四十七页,2022年,8月28日“添加”命令按钮PrivateSubCmdAdd_Click()'“添加”命令按钮

'使“添加”和“删除”按钮为不可用状态CmdAdd.Enabled=FalseCmdDel.Enabled=False

'使“更改”和“取消”按钮为可用状态CmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueEndSub第二十三页,共四十七页,2022年,8月28日“取消”命令按钮PrivateSubCmdCancel_Click()'“取消”命令按钮

'使“添加”和“删除”按钮为可用状态CmdAdd.Enabled=TrueCmdDel.Enabled=True

'使“取消”按钮为不可用状态CmdCancel.Enabled=FalseEndSub第二十四页,共四十七页,2022年,8月28日“删除”命令按钮PrivateSubCmdDel_Click()'“删除”命令按钮DimresAsIntegerres=MsgBox("确实要删除此行记录吗?",_vbExclamation+vbYesNo+vbDefaultButton2)'提示用户Ifres=vbYesThen'如果确实要删除IfAdodcStudent.Recordset.EOF=TrueThenEndIfEndIfEndSub第二十五页,共四十七页,2022年,8月28日“更新”命令按钮PrivateSubCmdUpdate_Click()'“更新”命令按钮

'将文本框中的当前值写入结果集相应字段中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'使更新生效

'使“添加”和“删除”按钮为可用状态CmdAdd.Enabled=TrueCmdDel.Enabled=TrueCmdCancel.Enabled=False'使“取消”按钮为不可用状态EndSub第二十六页,共四十七页,2022年,8月28日“第一条”命令按钮'“第一条”命令按钮EndSub第二十七页,共四十七页,2022年,8月28日“末一条”命令按钮'“末一条”命令按钮EndSub第二十八页,共四十七页,2022年,8月28日“下一条”命令按钮'“下一条”命令按钮IfAdodcStudent.Recordset.EOF=TrueThen

'如果已经移到了最后一行之后,则将指针定位在最后一行EndIfEndSub第二十九页,共四十七页,2022年,8月28日“上一条”命令按钮'“上一条”命令按钮IfAdodcStudent.Recordset.BOF=TrueThen

'如果已经移到了第一行之前,则将指针定位在第一行EndIfEndSub第三十页,共四十七页,2022年,8月28日结束程序代码'“退出”命令按钮PrivateSubCmdExit_Click()EndEndSub第三十一页,共四十七页,2022年,8月28日示例2实现过程展示设置控件和属性第三十二页,共四十七页,2022年,8月28日编写程序代码第三十三页,共四十七页,2022年,8月28日执行程序观察结果第三十四页,共四十七页,2022年,8月28日示例3示例3说明

示例3控件的属性设置示例3程序代码示例3实现过程展示第三十五页,共四十七页,2022年,8月28日示例3说明示例3在示例1的基础上增加了一个窗体,这个窗体用DataGrid控件显示数据。示例3中的两个窗体的布局分别图1和图2所示。图1Form1布局图2Form2布局第三十六页,共四十七页,2022年,8月28日在图所示的Form1上,当用户单击“查找”命令按钮时,显示Form2。Form2上DataGrid中的数据是根据Form1中当前显示的学号值去查找此学生的姓名、所修的课程名、课程的学分以及考试成绩。在Form2上单击“返回”命令按钮(对象名为cmdReturn),可以返回到Form1,并且同时卸载Form2。

第三十七页,共四十七页,2022年,8月28日示例3控件的属性设置Form1窗体上各控件属性的设置同示例1。Form2窗体DataGrid数据绑定控件的对象名为:dtgCondDtgCond控件的列属性在程序代码中设置。ADO数据控件名为:AdodcGridConnectionString属性的值同示例1的AdodcStudentCommandType和RecordSource属性我们在程序代码中设置。第三十八页,共四十七页,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

'设置DtgCond的列标题.Columns(0).Caption="学号".Columns(1).Caption="课程名".Columns(2).Caption="学分".Columns(3).Caption="成绩"

'设置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窗体上当前显示的学号的值

‘编写满足要求的查询语句,查找学号值等于给定值的学生的姓名、‘修的课程名、学分和成绩strS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论