




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 = P
9、rovider=MSDASQL.1;Persist Security Info=False; User ID=sa; & password=sa;Data Source=Students;Mode=ReadWriteConst StrRst = select * from sDim Conn As New ADODB.ConnectionDim Rst As New ADODB.Recordset设置数据操作控件的相应属性AdodcODBC.ConnectionString = StrDSNAdodcODBC.RecordSource = StrRstDataGridQuery.DataSou
10、rce= 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 StrDSNRst.CursorType = adOpenDyn
11、amicRst.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()If DataGridQuery.Row -1 The
12、nAdodcODBC.Recordset.UpdateEnd 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).Value = False ThenQuerycondition =
14、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.Text) & End IfIf TxtSno.Text = And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = False ThenQuerycond
15、ition=select*fromTrim(TxtSname.Text) & End IfIf TxtSno.Text = And TxtSname.Text = OptSsex(1).Value = False ThenQuerycondition=select*fromswheresname=&And OptSsex(0).Value = True Andswheressex=&Trim(OptSsex(0).Caption) & End IfIf TxtSno.Text = And TxtSname.Text = And OptSsex(0).Value = False And OptS
16、sex(1).Value = True ThenQuerycondition = select * from s where ssex= & & Trim(OptSsex(1).Caption) & End IfIf TxtSno.Text And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = False ThenQuerycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.
17、Text) & End IfIf TxtSno.Text And TxtSname.Text = And OptSsex(0).Value = True And OptSsex(1).Value = False ThenQuerycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and ssex= & & Trim(OptSsex(0).Caption) & End IfIf TxtSno.Text And TxtSname.Text = And OptSsex(0).Value = False AndOptSse
18、x(1).Value = True ThenQuerycondition = select * from s where sno= & & Trim(TxtSno.Text) & & 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= & & Trim(TxtSname.Text) &
19、 & and ssex= & & Trim(OptSsex(0).Caption)& End IfIf TxtSno.Text = And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = True ThenQuerycondition = select * from s where sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(1).Caption)& If TxtSno.Text And TxtSname.Text And OptS
20、sex(0).Value = True And OptSsex(1).Value = False ThenQuerycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(0).Caption) & End IfIf TxtSno.Text And TxtSname.Text And OptSsex(0).Value = False And OptSsex(1).Value = True T
21、henQuerycondition = select * from s where sno= & & Trim(TxtSno.Text) & & and sname= & & Trim(TxtSname.Text) & & and ssex= & & Trim(OptSsex(1).Caption) & End IfAdodcODBC.RecordSource = QueryconditionAdodcODBC.RefreshCase 1数据插入操作For i = 3 To 5Label1(i).Enabled = TrueComboDate(i - 3).Enabled = TrueNext
22、 iIf TxtSno And TxtSname And (OptSsex(0).Value Or OptSsex(1).Value)ThenRst.Find sno = & 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).Valu
23、e ThenRst.Fields(2) = Trim(OptSsex(i).Caption)End IfNext iIfComboDate(0).TextComboDate(0).List(0)IfComboDate(1).TextComboDate(1).List(0)IfComboDate(2).TextComboDate(2).List(0)=年ThenComboDate(0).Text=月ThenComboDate(1).Text=日ThenComboDate(2).Text=Rst.Fields(3) = Trim(ComboDate(0).Text) & - & Trim(Comb
24、oDate(1).Text)& - & Trim(ComboDate(2).Text) Rst.Update AdodcODBC.RecordSource = StrRst AdodcODBC.RefreshElseMsgBox 数据信息填写不完整,请重填!, vbOKOnly, 系统提示 Exit SubEnd IfRst.MoveFirstCase 2数据删除操作Label1(1).Enabled = FalseTxtSname.Enabled = FalseFor i = 3 To 5Label1(i).Enabled = FalseComboDate(i - 3).Enabled =
25、FalseNext 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 此操作不能基于多条件进行,请重设条件!, vbOKOnly, 系统提示 TxtSno.Text = For i = 0 To 1OptSsex(i).Value = FalseNext i
26、Exit SubEnd IfIf TxtSno.Text ThenRst.MoveFirstRst.Find sno = & Trim(TxtSno.Text) & If Rst.EOF ThenIf Rst.BOF ThenMsgBox 当前数据表为空!, vbOKOnly, 系统提示 Exit SubElseRst.MoveFirstEnd IfMsgBox 该学号记录不存在,请重填!, vbOKOnly, 系统提示 Exit SubElseRst.DeleteEnd IfEnd IfIf OptSsex(0).Value ThenDoRst.MoveFirstRst.Find ssex
27、= & Trim(OptSsex(0).Caption) & If Rst.EOF ThenIf Rst.BOF ThenMsgBox 当前数据表为空!, vbOKOnly, 系统提示 Exit SubElseRst.MoveFirstEnd IfMsgBox 没有男生记录信息,请重填!, vbOKOnly, 系统提示 Exit SubElseRst.DeleteEnd IfRst.MoveNextLoop Until Rst.EOFEnd IfIf OptSsex(1).Value ThenDoRst.MoveFirstRst.Find ssex = & Trim(OptSsex(1).Caption) & If Rst.EOF ThenIf Rst.BOF ThenMsg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年光伏电站技术咨询合同
- 2025年个人融资租赁策划实施合同
- 2025年住宅交易集资合同规范
- 2025年个体商家仓库租赁合同样本
- 2025年钻机采购与销售合同
- 2025年创新吊顶装饰合同
- 2025年医疗卫生机构劳动合同示范文本
- 大坡顶集体荒山承包合同(30篇)
- 2025年专职司机兼配送员合同范文
- 2025年合作经营餐厅合作合同范本
- 生物产品检验检疫基础知识单选题100道及答案
- 江苏省中职《英语》学业水平考试备考试题集(含历年真题)
- 2025年合伙型公司新合伙人加入协议
- 2025年安全员之C证(专职安全员)考试题库
- 2025城市商铺买卖合同书
- 2025年春新北师大版物理八年级下册课件 第六章 质量和密度 第一节 物体的质量及其测量
- 2024全国各省高考诗歌鉴赏真题及解析
- 《价值观培训》课件
- 《临床科研思维》课件
- GA/T 761-2024停车库(场)安全管理系统技术要求
- 《设施节水灌溉技术》课件
评论
0/150
提交评论