《2022年实验六通过ODBC方式访问数据库宣贯 .pdf》由会员分享,可在线阅读,更多相关《2022年实验六通过ODBC方式访问数据库宣贯 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验六通过 ODBC 方式访问数据库一、实验条件与环境1通用 PC 机2PC 机必须安装Windows 2000 系列、 Windows XP 系列或 Windows NT 操作系统平台3PC 机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4PC 机还须安装VB、 VC、C+ Builder 、Dehpi 等面向对象的可视化程序设计软件5最好有一台公用的SQL Server 2000 服务器二、实验目的1通过上机实验了解可视化程序设计语言对数据库进行访问的常用方法2通过上机实验掌握软件开发工具面向用户提供的ODBC 对象接口的概念及其作用3通
2、过上机实验熟悉SQL 语句在面向对象编程语言中的使用4通过上机实验熟悉通过ODBC 接口访问数据库并对数据库进行操作5通过上机实验熟悉使用ODBC 来进行数据库应用程序的设计6通过上机实验熟悉数据源的概念及数据源的创建方法1 通过上机实验熟悉ADO DA TA 控件的主要属性、事件、方法及其使用三、实验要求:1要求学生至少熟悉一门面向对象的可视化程序设计语言(如:VB 、VC、C+ Builder 、Dehpi 等)2实验前, 要求学生充分作好ADO DA TA 控件、 ODBC 数据接口及数据源等相关内容的预习工作3本实验涉及的实验内容最好能在2 课时内完成4实验完成后需要书写实验报告,本次
3、实验报告需在下次实验课堂上上交四、通过ODBC 方式访问数据库并进行各种数据操作的一个实例建立一个名为MyDB 的数据库,然后在此数据库中建立一个名为S 的数据表,有关数据表 S 的属性描述为: Sno,学号,数据类型为char(10);Sname,姓名, 数据类型为char(8);Ssex,性别,数据类型为char(2);BirthDay ,生日,数据类型为datetime(8) 。创建一个名为Students 的数据源, 然后利用可视化程序设计语言设计一个用户操作界面,通过 ODBC 数据接口和 ADO DA TA 实现对数据库MyDB 中数据表S 的查询、 插入、删除、修改等数据操作。实
4、现过程说明:本功能的实现采用Microsoft SQL Server 2000作为数据库管理系统,采用VB 作为用户操作界面的软件开发工具。计算机操作系统为Windows 2000 Professional。实现步骤:1为数据库MyDB 中 S数据表创建名为Students的数据源打开“开始 /设置 /控制面板 /管理工具 /数据源( ODBC) ” ,然后按照系统的提示,逐步进行设置,最终创建数据源Students。a)鼠标双击“数据源(ODBC) ”图标,出现“ ODBC 数据源管理器”界面(见图1) ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
5、- - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 2)鼠标单击“ODBC 数据源管理器”界面的“添加”按钮,出现“创建数据源”界面(见图 2) ,在此界面中选择安装数据源的驱动程序类别为“SQL Server” ;3)鼠标单击 “创建数据源” 界面的“完成” 按钮,出现“建立新的数据源到SQL Server”界面(见图3) ,在此界面中设置好数据源的名称、描述信息及服务器的名称等参数;4)鼠标单击图3 界面的“下一步”按钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Server”
6、(见图 4) ,在此界面中设置好数据源的登图 1 图 2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 陆模式及登陆时的用户名和密码等参数;5)鼠标单击图4 界面的“下一步”按钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Server” (见图 5) ,在此界面中选定可选项“更改默认的数据库为” ,并设置好更改默认的数据库为MyDB ,设置情况如图5 所示;6)鼠标单击图5 界面的“下一步”按
7、钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Server” (见图 6) ,在此界面中所有可选项按其默认值选定,不需作改动;7)鼠标单击图6 界面的“完成”按钮,出现“ODBC Microsoft SQL Server 安装”界面(见图 7) ;8)鼠标单击图7 界面的“测试数据源”按钮,出现“SQL Server ODBC 数据源测试”界面(见图8) ;图 3 图 4名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - -
8、- - - - - - 9)鼠标单击图8 界面的“确定”按钮,数据源Students 就建立起来了。图 6图 7图 8图 5名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 2利用VB 编程语言创建数据库应用程序用户操作界面在 VB 中创建的用户操作界面如下图9 所示。 界面中涉及到的控件有以下这些(其含义和功能作用参见软件界面图9) :1)Frame 控件 FrameCond 2)Frame 控件 FrameOpt 3)Dat
9、aGrid 控件4)Label 控件 Label1 控件数组, Index 范围为 0 至 5 5)TextBox 控件 TxtSno 6)TextBox 控件 TxtSname 7)OptionButton 控件 OptSsex 控件数组, Index 范围为 0 至 1 8)ComboBox 控件控件数组,Index 范围为 0至 2 9)CommandButton 控件 CmdOpt 控件数组, Index 范围为 0 至 4 10)Adodc 控件 AdodcODBC (设置为不可见模式)常量、变量定义Const StrDSN = Provider=MSDASQL.1;Persist
10、Security Info=False; User ID=sa; & password=sa; Data Source=Students;Mode=ReadWrite Const StrRst = select * from s Dim Conn As New ADODB.Connection 图 9数据库应用程序用户操作界面DataGridQuery FrameOpt FrameCond TxtSno TxtSname OptSsex(0) ,OptSsex(1) ComboDate(0),ComboDate(1) ,ComboDate(2) CmdOpt(0) CmdOpt(1) CmdO
11、pt(2) CmdOpt(3) CmdOpt(4) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - Dim Rst As New ADODB.Recordset 设置数据操作控件的相应属性AdodcODBC.ConnectionString = StrDSN AdodcODBC.RecordSource = StrRst DataGridQuery.DataSource= AdodcODBC 主要控件事件代码说明1)窗体装载事
12、件及代码Private Sub Form_Load() AdodcODBC.ConnectionString = StrDSN AdodcODBC.RecordSource = StrRst For i = 1970 To 2005 ComboDate(0).AddItem i Next i For i = 1 To 12 ComboDate(1).AddItem i Next i For i = 1 To 31 ComboDate(2).AddItem i Next i Conn.Open StrDSN Rst.CursorType = adOpenDynamic Rst.CursorLoc
13、ation = adUseClient Rst.LockType = adLockOptimistic Rst.ActiveConnection = Conn Rst.Open StrRst End Sub 2)窗体卸载事件及代码Private Sub Form_Unload(Cancel As Integer) Rst.Close Conn.Close End Sub 3)数据网格控件DataGridQuery中数据发生更新时触发的事件及代码Private Sub DataGridQuery_AfterUpdate() If DataGridQuery.Row -1 Then AdodcOD
14、BC.Recordset.Update End If End Sub 4)进行数据操作(查询、插入、删除、修改)及设置操作条件的事件及代码说明:查询操作可以不带条件查询,可以基于学号查询,可以基于姓名查询,可以基于性别查询,还可基于学号、姓名、性别三条件联合查询;插入操作要求用户将一个学生信息填写完整后才能进行;删除操作只能基于两个条件进行,一个是基于学号的删除,另一个是基于性别的删除;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - -
15、- - 修改操作直接在数据网格控件DataGridQuery 上直接进行, 但本软件不提供修改操作时对修改项进行数据合法性检查的功能;可以通过点击软件界面上的“条件复原”按钮进行操作条件的复原和设置。Private Sub CmdOpt_Click(Index As Integer) Dim Querycondition, TmpStr As String Select Case Index Case 0 数据查询操作For i = 3 To 5 Label1(i).Enabled = False ComboDate(i - 3).Enabled = False Next i If TxtSn
16、o.Text = And TxtSname.Text = And OptSsex(0).V alue = False And OptSsex(1).Value = False Then Querycondition = select * from s End If If TxtSno.Text And TxtSname.Text = And OptSsex(0).Value = False And OptSsex(1).Value = False Then Querycondition = select * from s where sno= & & Trim(TxtSno.Text) & E
17、nd If If TxtSno.Text = And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = False Then Querycondition = select * from s where sname= & & Trim(TxtSname.Text) & End If If TxtSno.Text = And TxtSname.Text = And OptSsex(0).Value = True And OptSsex(1).Value = False Then Querycondition = s
18、elect * from s where ssex= & & Trim(OptSsex(0).Caption) & End If If TxtSno.Text = And TxtSname.Text = And OptSsex(0).V alue = False And OptSsex(1).Value = True Then Querycondition = select * from s where ssex= & & Trim(OptSsex(1).Caption) & End If If TxtSno.Text And TxtSname.Text And OptSsex(0).Valu
19、e = False And OptSsex(1).Value = False Then Querycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.Text) & End If If TxtSno.Text And TxtSname.Text = And OptSsex(0).Value = True And OptSsex(1).Value = False Then Querycondition = select * from s where sno= &
20、 & Trim(TxtSno.Text) & & and ssex= & & Trim(OptSsex(0).Caption) & 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - End If If TxtSno.Text And TxtSname.Text = And OptSsex(0).Value = False And OptSsex(1).Value = True Then Querycondition = sele
21、ct * from s where sno= & & Trim(TxtSno.Text) & & and ssex= & & Trim(OptSsex(1).Caption) & End If If TxtSno.Text = And TxtSname.Text And OptSsex(0).Value = True And OptSsex(1).Value = False Then Querycondition = select * from s where sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(0).Ca
22、ption) & End If If TxtSno.Text = And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = True Then Querycondition = select * from s where sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(1).Caption) & End If If TxtSno.Text And TxtSname.Text And OptSsex(0).Value = True And
23、OptSsex(1).Value = False Then Querycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(0).Caption) & End If If TxtSno.Text And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = True Then Querycondition = s
24、elect * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(1).Caption) & End If AdodcODBC.RecordSource = Querycondition AdodcODBC.Refresh Case 1 数据插入操作For i = 3 To 5 Label1(i).Enabled = True ComboDate(i - 3).Enabled = True Next i If TxtSno A
25、nd TxtSname And (OptSsex(0).Value Or OptSsex(1).Value) Then Rst.Find sno = & Trim(TxtSno.Text) & If Rst.EOF Then Rst.AddNew Rst.Fields(0) = Trim(TxtSno.Text) Else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - - - - - - - Rst.MoveFirst MsgBox 学号不允许重复
26、,请重填!, vbOKOnly, 系统提示 Exit Sub End If Rst.Fields(1) = Trim(TxtSname.Text) For i = 0 To 1 If OptSsex(i).V alue Then Rst.Fields(2) = Trim(OptSsex(i).Caption) End If Next i If ComboDate(0).Text = 年 Then ComboDate(0).Text = ComboDate(0).List(0) If ComboDate(1).Text = 月 Then ComboDate(1).Text = ComboDate
27、(1).List(0) If ComboDate(2).Text = 日 Then ComboDate(2).Text = ComboDate(2).List(0) Rst.Fields(3) = Trim(ComboDate(0).Text) & - & Trim(ComboDate(1).Text) & - & Trim(ComboDate(2).Text) Rst.Update AdodcODBC.RecordSource = StrRst AdodcODBC.Refresh Else MsgBox 数据信息填写不完整,请重填!, vbOKOnly, 系统提示 Exit Sub End
28、If Rst.MoveFirst Case 2 数据删除操作Label1(1).Enabled = False TxtSname.Enabled = False For i = 3 To 5 Label1(i).Enabled = False ComboDate(i - 3).Enabled = False Next i If TxtSno.Text = And OptSsex(0).V alue = False And OptSsex(1).V alue = False Then MsgBox 未给定删除条件!, vbOKOnly, 系统提示 Exit Sub End If If TxtSn
29、o.Text And (OptSsex(0).Value Or OptSsex(1).Value) Then MsgBox 此操作不能基于多条件进行,请重设条件!, vbOKOnly, 系统提示 TxtSno.Text = For i = 0 To 1 OptSsex(i).Value = False 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - Next i Exit Sub End If If TxtSno.Text T
30、hen Rst.MoveFirst Rst.Find sno = & Trim(TxtSno.Text) & If Rst.EOF Then If Rst.BOF Then MsgBox 当前数据表为空!, vbOKOnly, 系统提示 Exit Sub Else Rst.MoveFirst End If MsgBox 该学号记录不存在,请重填!, vbOKOnly, 系统提示 Exit Sub Else Rst.Delete End If End If If OptSsex(0).Value Then Do Rst.MoveFirst Rst.Find ssex = & Trim(OptSs
31、ex(0).Caption) & If Rst.EOF Then If Rst.BOF Then MsgBox 当前数据表为空!, vbOKOnly, 系统提示 Exit Sub Else Rst.MoveFirst End If MsgBox 没有男生记录信息,请重填!, vbOKOnly, 系统提示 Exit Sub Else Rst.Delete End If Rst.MoveNext Loop Until Rst.EOF End If If OptSsex(1).Value Then Do Rst.MoveFirst Rst.Find ssex = & Trim(OptSsex(1).
32、Caption) & If Rst.EOF Then If Rst.BOF Then 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - MsgBox 当前数据表为空!, vbOKOnly, 系统提示 Exit Sub Else Rst.MoveFirst End If MsgBox 没有女生记录信息,请重填!, vbOKOnly, 系统提示 Exit Sub Else Rst.Delete End If Rst.MoveNex
33、t Loop Until Rst.EOF End If AdodcODBC.RecordSource = StrRst AdodcODBC.Refresh Case 3 数据修改操作FrameCond.Enabled = False Call DataGridQuery_AfterUpdate Case 4 操作条件复原与设置操作FrameCond.Enabled = True For i = 0 To 5 Label1(i).Enabled = True Next i TxtSno.Enabled = True TxtSname.Enabled = True For i = 0 To 1 O
34、ptSsex(i).Value = False Next i For i = 0 To 2 ComboDate(i).Enabled = True Next i End Select End Sub 五、实验内容:在学习、理解、掌握好以上数据库操作实例后,完成如下实验内容:利用 ODBC(Open DataBase Connection)数据访问方式,对教材第80 页所示数据库中的零件数据表P 实现数据的查询、插入、删除及修改操作,并且要求数据的查询操作功能要包括对WEIGHT 属性列的求和统计查询。注意:数据库可直接利用实验一所建立的数据库,不必重新创建。六、实验总结:可视化面向对象程序设计
35、语言均为程序开发人员提供了多种数据库的访问方式,本实验现实过程中主要用到了ODBC 数据接口来现实应用软件对SQL 数据库的数据访问。请同学名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 们实验后考虑:怎样利用ADO ( ActiveX Data Object)对象来现实应用软件对SQL 数据库的数据访问; 怎样利用DATA 控件、 ODBC 数据接口、ADO 对象来现实应用软件对Access数据库的数据访问。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -