数据库原理与应用16.ppt_第1页
数据库原理与应用16.ppt_第2页
数据库原理与应用16.ppt_第3页
数据库原理与应用16.ppt_第4页
数据库原理与应用16.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第十六章 VB数据库应用编程示例,主要学习内容 示例1 使用ADO数据控件,实现数据查询操作 示例2 对数据的添加、删除和更新操作。 示例3 两个窗体,一个用于查询,一个用表格显示数据。 数据窗体向导 用VB数据窗体向导,自动生成查询和操作数据库的窗体,示例一,本示例说明如何利用ADO数据控件实现对Student表中全部数据的浏览,以及如何实现按用户指定的系查找相应学生信息的功能。 通过本示例可以看到,设置好ADO数据控件的属性后,用户不需要编制任何代码就可以实现对数据的查询。如果查找条件变化了,用户只需要编写很少的代码就可以实现对数据源的重新查询。 本示例的窗体布局如右图所示。,图15-1 示例1窗体布局,示例一,各控件所设置的与数据操作有关的属性及属性值如表所示。,示例一,在这个界面中,用户可以通过单击AdodcStudent数据控件的四个按钮改变所浏览的记录。当用户单击“查找”按钮时,表示要按用户在txtSearchdept文本框中所指定的系进行查找。 程序代码 窗体Form1的Load事件(窗体启动时初始化) Private Sub Form_Load() 窗体加载时初始化查找系的内容 初始化要查找的系为空 TxtSearchDept.Text = “ End Sub “退出”按钮CmdExit的Click事件 Private Sub CmdExit_Click() “退出“按钮 End End Sub,程序代码 “查找”按钮CmdSearch的Click事件 Private Sub CmdSearch_Click() “查找“按钮 If Len(TxtSearchDept.Text) 0 Then 如果用户指定了系名 AdodcStudent.CommandType = adCmdText AdodcStudent.RecordSource = “select * from student where _ Sdept = “ & Trim(TxtSearchDept.Text) & “ AdodcStudent.Refresh 使所设置的属性生效 Else 若用户未指定列名 MsgBox (“请指定要查找的系“) 则提示用户输入系名 End If End Sub,示例二,在示例1的基础上增加了两组供用户操作的按钮。一组是为了说明如何实现数据更改操作,即如何使用Recordset对象的AddNew、Update、Delete和CancelUpdate方法;另一组是为了说明如何编程控制结果集中浏览记录的移动,即如何使用Recordset对象的Move方法组。 窗体布局如右图所示。,图15-3 示例2窗体布局,示例二,程序代码 窗体启动时的初始化代码 Private Sub Form_Load() 初始时使“取消”按钮为不可用状态 CmdCancel.Enabled = False End Sub 数据操作按钮组代码 Private Sub CmdAdd_Click() “添加”命令按钮 AdodcStudent.Recordset.AddNew 使“添加”和“删除”按钮为不可用状态 CmdAdd.Enabled = False CmdDel.Enabled = False 使“更改”和“取消”按钮为可用状态 CmdUpdate.Enabled = True CmdCancel.Enabled = True End Sub,示例二,程序代码 数据操作按钮组代码 Private Sub CmdCancel_Click() “取消”命令按钮 AdodcStudent.Recordset.CancelUpdate 使“添加”和“删除”按钮为可用状态 CmdAdd.Enabled = True CmdDel.Enabled = True 使“取消”按钮为不可用状态 CmdCancel.Enabled = False End Sub,示例二,程序代码 数据操作按钮组代码 Private Sub CmdDel_Click() “删除”命令按钮 Dim res As Integer res = MsgBox(“确实要删除此行记录吗?“, _ vbExclamation + vbYesNo + vbDefaultButton2) 提示用户 If res = vbYes Then 如果确实要删除 AdodcStudent.Recordset.Delete AdodcStudent.Recordset.MoveNext If AdodcStudent.Recordset.EOF = True Then AdodcStudent.Recordset.MoveLast End If End If End Sub,示例二,程序代码 数据操作按钮组代码 Private Sub CmdUpdate_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 = True CmdDel.Enabled = True CmdCancel.Enabled = False 使“取消”按钮为不可用状态 End Sub,示例二,程序代码 移动指针方法组代码 Private Sub CmdFirst_Click() “第一条”命令按钮 AdodcStudent.Recordset.MoveFirst End Sub Private Sub CmdLast_Click() “末一条”命令按钮 AdodcStudent.Recordset.MoveLast End Sub,示例二,程序代码 移动指针方法组代码 Private Sub CmdNext_Click() “下一条”命令按钮 AdodcStudent.Recordset.MoveNext If AdodcStudent.Recordset.EOF = True Then 如果已经移到了最后一行之后,则将指针定位在最后一行 AdodcStudent.Recordset.MoveLast End If End Sub Private Sub CmdPrevious_Click() “上一条”命令按钮 AdodcStudent.Recordset.MovePrevious If AdodcStudent.Recordset.BOF = True Then 如果已经移到了第一行之前,则将指针定位在第一行 AdodcStudent.Recordset.MoveFirst End If End Sub,示例二,程序代码 结束程序代码 Private Sub CmdExit_Click() “退出”命令按钮 End End Sub,图15-4 示例2运行时的初始界面,示例三,在示例2基础上增加了一个窗体,这个窗体用DataGrid控件显示数据。在form1上单击“查找”命令按钮时,显示form2。Form2中的数据是根据form1当前显示的学号值去查找此学生的姓名、修的课程名、课程的学分以及考试成绩。 两个窗体的布局图如下所示。,图15-5 示例3的Form1布局,图15-6 示例3的Form2布局,示例三,程序代码 Form1上的“查找”和“退出”命令按钮的代码 Private Sub CmdExit_Click() “退出“按钮 End End Sub Private Sub CmdSearch_Click() “查找“按钮 Form2.Show 显示Form2窗体 End Sub Form2上的“返回”命令按钮的代码 Private Sub CmdReturn_Click() “返回”按钮 Unload Me End Sub,示例三,程序代码 在Form2 Load事件中,dtgCond控件的数据源代码 Private Sub Form_Load() Dim strSno As String Dim strSelect As String 得到form1窗体上当前显示的学号值 strSno = Trim(Form1.TxtSno.Text) 编写满足要求的查询语句,查找学号值等于给定值的学生的姓名、修的课程名、 学分和成绩 strSelect = “select Sname, Cname,Ccredit,Grade from _ student s join sc “ & “on s.sno = sc.sno join course c on _ o = o where “ & “sc.sno = “ & strSno & “,示例三,程序代码 在Form2 Load事件中,dtgCond控件的数据源代码(续) 设置ADO数据控件相应的属性 AdodcGrid.CommandType = adCmdText AdodcGrid.RecordSource = strSelect 使ADO数据控件的新属性生效 AdodcGrid.Refresh 设置DataGrid控件的数据源为ADO数据控件的结果集 Set DtgCond.DataSource = AdodcGrid 调用DtgCond控件的初始化过程 Call InitGrid End Sub,示例三,程序代码 在Form2 上的dtgCond DataGrid控件初始化代码 Private Sub InitGrid() 初始化dtgCond控件 With DtgCond 设置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 = 800 End With End Sub,示例三,运行时的界面,图15-7 Form1运行时的一个界面,图15-8 与图15-7对应的Form2上的数据,数据窗体向导,添加数据窗体向导 VB提供了一个可以使此工作极大简化的工具:数据窗体向导(Data Form Wizard)。 在使用ADO控件时,利用这个向导,可以轻松的创建ADO数据控件和数据绑定控件,并可实现数据的增、删、改、查操作。 使用数据窗体向导的第一步就是要将它添加到VB的系统菜单中。 添加数据窗体向导的方法 选择VB的“外接程序”菜单下的“外接程序管理器”命令,打开“外接程序管理器”对话框; 在“可用外接程序”中选中的“VB6数据窗体向导”; 并在右下边的“加载行为”中选择“在启动中加载”(在启动时就加入此向导)或“加载/卸载”(在使用时加入); 然后单击“确定”按钮关闭此对话框。,数据窗体向导,使用数据窗体向导 使用数据窗体向导步骤一: 在“外接程序”菜单中选择“数据窗体向导”命令,启动数据窗体向导,单击“下一步”按钮,弹出的对话框如图所示。 使用数据窗体向导步骤二: VB 6提供了两种数据库类型:Access和Remote(ODBC)。如果使用数据窗体向导访问SQL Server中的数据库,则可以选择Remote(ODBC)选项。单击“下一步”按钮弹出“连接信息”对话框。,数据窗体向导,使用数据窗体向导 使用数据窗体向导步骤三: 在“连接信息”对话框中,用户需要输入连接数据库的信息。在“ODBC连接数据”部分的DSN下拉列表框中选择一个已经建立好的ODBC数据源,然后在“UID”和“PWD”部分分别输入用户名和密码,单击“下一步” 。,数据窗体向导,使用数据窗体向导 使用数据窗体向导步骤四: 在“窗体名称”文本框输入要创建的窗体的名字,然后在“窗体布局”列表框中选择合适的布局方式。,VB一共提供了五种布局方式: 单个记录 网格(数据表) 主表/细表 MS HflexGrid MS Chart 有三种绑定方式: ADO数据控件 ADO代码 类,数据窗体向导,使用数据窗体向导 使用数据窗体向导步骤五: 在设置记录源对话框中设置ADO数据控件的记录源属性。在“记录源”下拉列表框中选择表,然后在“可选字段”列表框中选择所需的字段,选中字段名,在“列排序按”下拉列表框中可以选择结果集中记录的排序方式。 假设这里选中的是Student表中的全部字段。选完字段后单击“下一步” 。,数据窗体向导,使用数据窗体向导 使用数据窗体向导步骤六: 在“控件选择”对话框中,选择要添加到窗体上的控件。 各控件的含义为: 添加控件:运行在数据库中添 加新记录。 更新控件:立即把在当前记录 中修改的任何数据 保存到数据库中。,删除控件:删除当前记录。 刷新按钮:重新查询数据库,以便获得从显示数据以来其他人对 数据库所做的任何修改。该按钮仅对当数据源是多用 户时才有意义。 关闭按钮:关闭窗体。 显示数据控件:使ADO数据控件可见。此选项仅可应用于使用 Gr

温馨提示

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

评论

0/150

提交评论