



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验六通过 ODBC 方式访问数据库一、实验条件与环境1通用 PC 机2 PC 机必须安装Windows 2000 系列、 Windows XP 系列或 Windows NT 操作系统平台3 PC 机还须安装Microsoft SQL Server 2000任意一版本(个人版、标准版、企业版)4 PC 机还须安装VB 、 VC 、C+ Builder 、 Dehpi 等面向对象的可视化程序设计软件5最好有一台公用的SQL Server 2000 服务器二、实验目的1通过上机实验了解可视化程序设计语言对数据库进行访问的常用方法2通过上机实验掌握软件开发工具面向用户提供的ODBC 对象接口的概念及
2、其作用3通过上机实验熟悉SQL 语句在面向对象编程语言中的使用4通过上机实验熟悉通过ODBC 接口访问数据库并对数据库进行操作5通过上机实验熟悉使用ODBC 来进行数据库应用程序的设计6通过上机实验熟悉数据源的概念及数据源的创建方法1 通过上机实验熟悉ADO DATA控件的主要属性、事件、方法及其使用三、实验要求: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 DATA实现对数据库MyDB 中数据表S 的查询、 插入、删除、修改等数据操
4、作。实现过程说明:本功能的实现采用Microsoft SQL Server 2000作为数据库管理系统,采用操作界面的软件开发工具。计算机操作系统为Windows 2000 Professional 。VB作为用户实现步骤:1为数据库MyDB中 S 数据表创建名为Students 的数据源打开“开始 /设置 /控制面板 /管理工具 /数据源( ODBC )”,然后按照系统的提示,逐步进行设置,最终创建数据源 Students。a) 鼠标双击“数据源( ODBC )”图标,出现“ ODBC 数据源管理器”界面(见图1);2)鼠标单击“ ODBC 数据源管理器”界面的“添加”按钮,出现“创建数据源
5、”界面(见图 2),在此界面中选择安装数据源的驱动程序类别为“SQL Server”;3)鼠标单击 “创建数据源” 界面的 “完成” 按钮,出现“建立新的数据源到SQL Server”界面(见图3),在此界面中设置好数据源的名称、描述信息及服务器的名称等参数;图 1图 24)鼠标单击图3 界面的“下一步”按钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Server”(见图 4),在此界面中设置好数据源的登陆模式及登陆时的用户名和密码等参数;5)鼠标单击图4 界面的“下一步”按钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Serve
6、r”(见图 5),在此界面中选定可选项“更改默认的数据库为” ,并设置好更改默认的数据库为MyDB ,设置情况如图5 所示;图 3图 46)鼠标单击图5 界面的“下一步”按钮,出现图3 界面的一个子界面,界面标题栏的名称也为“建立新的数据源到SQL Server”(见图 6),在此界面中所有可选项按其默认值选定,不需作改动;7)鼠标单击图6 界面的“完成”按钮,出现“ODBC Microsoft SQL Server安装”界面(见图 7);8)鼠标单击图7 界面的“测试数据源”按钮,出现“SQL Server ODBC 数据源测试”界面(见图8);9)鼠标单击图8 界面的“确定”按钮,数据源S
7、tudents 就建立起来了。图 5图 6图7图82利用 VB 编程语言创建数据库应用程序用户操作界面在 VB 中创建的用户操作界面如下图9 所示。界面中涉及到的控件有以下这些和功能作用参见软件界面图9):(其含义1) Frame 控件 FrameCond2) Frame 控件 FrameOpt3) DataGrid 控件4) Label 控件 Label1 控件数组, Index 范围为 0 至 55) TextBox 控件 TxtSno6) TextBox 控件 TxtSname7) OptionButton 控件 OptSsex 控件数组, Index 范围为 0 至 18) Combo
8、Box 控件控件数组,Index 范围为 0 至 29) CommandButton 控件 CmdOpt 控件数组, Index 范围为 0 至 410) Adodc 控件 AdodcODBC (设置为不可见模式)OptSsex(0) , OptSsex(1)DataGridQueryFrameOptFrameCondTxtSnoTxtSname图 9数据库应用程序用户操作界面ComboDate(0) , ComboDate(1) , ComboDate(2)CmdOpt(0)CmdOpt(1)CmdOpt(2)CmdOpt(3)CmdOpt(4)常量、变量定义Const StrDSN = &
9、quot;Provider=MSDASQL.1;Persist Security Info=False; User ID=sa; & password=sa;Data Source=Students;Mode=ReadWrite"Const StrRst = "select * from s"Dim Conn As New ADODB.ConnectionDim Rst As New ADODB.Recordset设置数据操作控件的相应属性AdodcODBC.ConnectionString = StrDSNAdodcODBC.RecordSource =
10、 StrRstDataGridQuery.DataSource= AdodcODBC主要控件事件代码说明1)窗体装载事件及代码Private Sub Form_Load()AdodcODBC.ConnectionString = StrDSNAdodcODBC.RecordSource = StrRstFor i = 1970 To 2005ComboDate(0).AddItem iNext iFor i = 1 To 12ComboDate(1).AddItem iNext iFor i = 1 To 31ComboDate(2).AddItem iNext iConn.Open StrD
11、SNRst.CursorType = adOpenDynamicRst.CursorLocation = adUseClientRst.LockType = adLockOptimisticRst.ActiveConnection = ConnRst.Open StrRstEnd Sub2)窗体卸载事件及代码Private Sub Form_Unload(Cancel As Integer)Rst.CloseConn.CloseEnd Sub3)数据网格控件 DataGridQuery 中数据发生更新时触发的事件及代码Private Sub DataGridQuery_AfterUpdate(
12、)If DataGridQuery.Row > -1 ThenEnd IfEnd Sub4)进行数据操作(查询、插入、删除、修改)及设置操作条件的事件及代码说明:查询操作可以不带条件查询, 可以基于学号查询, 可以基于姓名查询, 可以基于性别查询,还可基于学号、姓名、性别三条件联合查询;插入操作要求用户将一个学生信息填写完整后才能进行;删除操作只能基于两个条件进行,一个是基于学号的删除,另一个是基于性别的删除;修改操作直接在数据网格控件 DataGridQuery 上直接进行, 但本软件不提供修改操作时对修改项进行数据合法性检查的功能;可以通过点击软件界面上的“条件复原”按钮进行操作条件
13、的复原和设置。Private Sub CmdOpt_Click(Index As Integer)Dim Querycondition, TmpStr As StringSelect Case IndexCase 0数据查询操作For i = 3 To 5Label1(i).Enabled = FalseComboDate(i - 3).Enabled = FalseNext iIf TxtSno.Text = "" And TxtSname.Text = "" And OptSsex(0).Value = False And OptSsex(1).Va
14、lue = False ThenQuerycondition = "select * from s "End IfIf TxtSno.Text <> "" And TxtSname.Text = "" And OptSsex(0).V alue = False And OptSsex(1).Value = False ThenQuerycondition = "select * from s where sno=" & "'" & Trim(TxtSno.Te
15、xt) & "'"End IfIf TxtSno.Text = "" And TxtSname.Text <> "" And OptSsex(0).Value = False And OptSsex(1).Value = False ThenQuerycondition="select*fromTrim(TxtSname.Text) & "'"End IfIf TxtSno.Text = "" And TxtSname.Text = &quo
16、t;"OptSsex(1).Value = False ThenQuerycondition="select*fromswheresname="&"'"And OptSsex(0).Value = True Andswheressex="&"'"&&Trim(OptSsex(0).Caption) & "'"End IfIf TxtSno.Text = "" And TxtSname.Text = "&
17、quot; And OptSsex(0).Value = False And OptSsex(1).Value = True ThenQuerycondition = "select * from s where ssex=" & "'" & Trim(OptSsex(1).Caption) & "'"End IfIf TxtSno.Text <> "" And TxtSname.Text <> "" And OptSsex(0).
18、Value = False And OptSsex(1).Value = False ThenQuerycondition = "select * from s where sno=" & "'" & Trim(TxtSno.Text) & "'" & "and sname=" & "'" & Trim(TxtSname.Text) & "'"End IfIf TxtSno.Text &l
19、t;> "" And TxtSname.Text = "" And OptSsex(0).Value = True And OptSsex(1).Value = False ThenQuerycondition = "select * from s where sno=" & "'" & Trim(TxtSno.Text) & "'" & "and ssex=" & "'" &
20、Trim(OptSsex(0).Caption) & "'"End IfIf TxtSno.Text <> "" And TxtSname.Text = "" And OptSsex(0).Value = False AndOptSsex(1).Value = True ThenQuerycondition = "select * from s where sno=" & "'" & Trim(TxtSno.Text) & "
21、'" & "and ssex=" & "'" & Trim(OptSsex(1).Caption) & "'"If TxtSno.Text = "" And TxtSname.Text <> "" And OptSsex(0).Value = True And OptSsex(1).Value = False ThenQuerycondition = "select * from s where sname=
22、" & "'" & Trim(TxtSname.Text) & "'" & "and ssex=" & "'" & Trim(OptSsex(0).Caption)& "'"End IfIf TxtSno.Text = "" And TxtSname.Text <> "" And OptSsex(0).Value = False And OptSs
23、ex(1).Value = True ThenQuerycondition = "select * from s where sname=" & "'" & Trim(TxtSname.Text) & "'" & "and ssex=" & "'" & Trim(OptSsex(1).Caption)& "'"If TxtSno.Text <> "" And
24、 TxtSname.Text <> "" And OptSsex(0).Value = True And OptSsex(1).Value = False ThenQuerycondition = "select * from s where sno=" & "'" & Trim(TxtSno.Text) & "'" & "and sname=" & "'" & Trim(TxtSname.T
25、ext) & "'" & "and ssex=" & "'"& Trim(OptSsex(0).Caption) & "'"End IfIf TxtSno.Text <> "" And TxtSname.Text <> "" And OptSsex(0).Value = False And OptSsex(1).Value = True ThenQuerycondition = "
26、;select * from s where sno=" & "'" & Trim(TxtSno.Text) & "'" & "and sname=" & "'" & Trim(TxtSname.Text) & "'" & "and ssex=" & "'"& Trim(OptSsex(1).Caption) & &qu
27、ot;'"End IfAdodcODBC.RecordSource = QueryconditionAdodcODBC.RefreshCase 1数据插入操作For i = 3 To 5Label1(i).Enabled = TrueComboDate(i - 3).Enabled = TrueNext iIf TxtSno <> "" And TxtSname <> "" And (OptSsex(0).Value Or OptSsex(1).Value)ThenRst.Find "sno =
28、9;" & Trim(TxtSno.Text) & "'"If Rst.EOF ThenRst.AddNewRst.Fields(0) = Trim(TxtSno.Text)ElseRst.MoveFirstMsgBox " 学号不允许重复,请重填!", vbOKOnly, " 系统提示 "Exit SubEnd IfRst.Fields(1) = Trim(TxtSname.Text)For i = 0 To 1If OptSsex(i).Value ThenRst.Fields(2) = Trim
29、(OptSsex(i).Caption)End IfNext iIfComboDate(0).Text="年"ThenComboDate(0).Text=ComboDate(0).List(0)IfComboDate(1).Text="月"ThenComboDate(1).Text=ComboDate(1).List(0)IfComboDate(2).Text="日"ThenComboDate(2).Text=ComboDate(2).List(0)& "-" & Trim(ComboDate(2)
30、.Text) Rst.Update AdodcODBC.RecordSource = StrRst AdodcODBC.RefreshElseMsgBox " 数据信息填写不完整,请重填!", vbOKOnly, " 系统提示 "Exit SubEnd If'Rst.MoveFirstCase 2数据删除操作Label1(1).Enabled = FalseTxtSname.Enabled = FalseFor i = 3 To 5Label1(i).Enabled = FalseComboDate(i - 3).Enabled = FalseN
31、ext iIf TxtSno.Text = "" And OptSsex(0).V alue = False And OptSsex(1).Value = False ThenMsgBox " 未给定删除条件!", vbOKOnly, " 系统提示 "Exit SubEnd IfIf TxtSno.Text <> "" And (OptSsex(0).Value Or OptSsex(1).Value) ThenMsgBox " 此操作不能基于多条件进行,请重设条件!", vbOKO
32、nly, " 系统提示 "TxtSno.Text = ""For i = 0 To 1OptSsex(i).Value = FalseNext iExit SubEnd IfIf TxtSno.Text <> "" ThenRst.MoveFirstRst.Find "sno = '" & Trim(TxtSno.Text) & "'"If Rst.EOF ThenIf Rst.BOF ThenMsgBox " 当前数据表为空!",
33、 vbOKOnly, " 系统提示 "Exit SubElseRst.MoveFirstEnd IfMsgBox " 该学号记录不存在,请重填!", vbOKOnly, " 系统提示 "Exit SubElseRst.DeleteEnd IfEnd IfIf OptSsex(0).Value ThenDoRst.MoveFirstRst.Find "ssex = '" & Trim(OptSsex(0).Caption) & "'"If Rst.EOF ThenIf Rst.BOF ThenMsgBox " 当前数据表为空!", vbOKOnly, " 系统提示 "Exit SubElseRst.MoveFirstEnd IfMsgBox " 没有男生记录信息,请重填!", vbOKOnly, " 系统提示 "Exit SubElseRst.DeleteEnd IfRst.MoveNextLoop Until Rst.E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国数字城市行业发展规模研究及投资风险评估报告
- 配电安规习题与答案
- 2025届山西省吕梁市汾阳中学高考英语倒计时模拟卷含解析
- 2025届福建省福州市闽侯第六中学高三一诊考试英语试卷含答案
- 职业技术学院2024级药品生产技术专业人才培养方案
- 2025年常州市高三二模语文试试卷(含标准答案)
- 纳米电机考核试卷
- 管道工程城市给水管网规划与设计考核试卷
- 船舶改装船舶废气净化技术考核试卷
- 皮革制品行业的市场拓展与销售策略考核试卷
- 农业保险理赔服务操作流程手册
- 《交换与路由技术》 课件全套 曹炯清 第1-9部分 学习环境的搭建- 综合实训与技能比赛
- 第30届WMO初测2年级B试卷
- 2024《整治形式主义为基层减负若干规定》全文课件
- 反诉状(业主反诉物业)(供参考)
- 10SMS202-2 埋地矩形雨水管道及其附属构筑物(砖、石砌体)
- 《教育向美而生-》读书分享课件
- 网课智慧树知道《老年医学概论(浙江大学)》章节测试答案
- 中国法律史-第三次平时作业-国开-参考资料
- 2023年高考语文高频考点必刷汇编黄金100题专题01:字音字形(二)
- TD/T 1032-2011 基本农田划定技术规程(正式版)
评论
0/150
提交评论