数据库开发入门:VB+ADO
数据库访问控件ADO
9.1 ADO控件
Visual Basic中可用的数据访问接口有三种:ActiveX数据对象(ActiveX Data Objects,ADO)、远程数据对象(RDO)和数据访问对象(DAO)。这三种接口的每一种都分别代表了数据访问技术的不同发展阶段。最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。目前,通常使用ADO作为数据访问接口。
图9-1 ADO数据存取控件
ActiveX 数据对象拥有与其对应的可视化控件ADO Data控件(ADODC)。可视化的ADODC具有“向前”和“向后”等按钮,因此易于使用。ADO数据控件并非VB的标准控件,使用之前先要将ADODC加入工具箱
图9-2 添加新部件
右键单击工具箱空白处,选择“部件(O)…”命令。系统弹出“部件”窗口,从“控件”选项卡中找到“Microsoft ADO Data Control 6.0 (OLEDB)”,选中并单击“确定”按钮。于是,工具箱中将出现ADO控件图标
。
图9-3 添加ADO控件
9.2 使用ADO控件创建一个简单的前端数据库应用程序
实例CH9-1 浏览联系人
使用ADODC创建浏览联系人的界面,后台数据库使用ACCESS 2003“联系人示例数据库”Contact.mdb。
第1步: 窗体上放置一个 ADO Data 控件,命名为ADODC1。 第2步: 在设计界面选定ADODC1,然后按F4键显示“属性”窗口。 第3步: 在“属性”窗口中,单击“ConnectionString”显示属性设置对话框。
选中“使用连接字符串”,单击按钮,
选择“Microsoft Jet 4.0 OLE DB Provider”,单击
,在“连接”选项
卡中选择数据库文件名。如果数据库文件与当前的应用程序在同一个路径下,则可以省略路径名。
单击,如果数据库文件路径和格式正确,系统提示“测试连接成功。”
第4步: 在“属性”窗口中,将“CommandType”(命令类型)属性设置为“2 - AdCmdTable” 第5步: 在“属性”窗口中,打开“RecordSource”(记录源)属性设置对话框,“表或存
储过程名称”选择“联系人”表
第6步: 在窗体上放置三个“文本框”控件,用来显示数据库信息。在“属性”窗口中,
将三个文本框的“数据源”属性设为 ADO Data 控件的名称 (ADODC1)。这样就可将这个文本框和ADO Data控件绑定在一起。三个文本框控件的“DataField”(数据字段)属性分别设置为“姓氏”、“名字”和“办公电话”。由于三个文本框分别与数据库中的字段绑定在一起,为了防止用户意外修改记录,通常将文本框的Locked属性设为True。
第7步: 运行该应用程序。用户可以在 ADO Data 控件使用四个箭头按钮浏览所有记录。
需要说明的是,“RecordSource”(记录源)属性也可以使用“命令文本”,即SQL语句。为此,只要将以上“第4步”和“第5步”应换成如下过程即可。 第4步: 第5步:
在“属性”窗口中,将“CommandType”(命令类型)属性设置为“2 - AdCmdText”。 在“属性”窗口中,打开“RecordSource”(记录源)属性设置对话框,“命令
文本(SQL)”中填入如下SQL语句“select * from联系人”
9.3 操作数据表中的记录
实例CH9-2 添加系统用户
使用ADODC控件向数据库文件mydb.mdb中的sysuser表添加新记录。 第1步:
界面设计如下,
第2步: 第3步:
ADODC控件命名为ADODC1,参照实例CH9-1中的第3步至第5步连接到数四个文本框的Locked属性设置为True,然后绑定数据源,即DataSource属性
据库mydb.mdb并以sysuser表作为数据源(使用SQL语句或表均可)。
设为ADODC1,DataField属性分别设为字段名sysuser的secondname、firstname、pid和power。 第4步:
“添加新用户”按钮代码如下,
实例CH9-3 删除系统用户
使用ADODC控件删除数据库文件mydb.mdb的sysuser表中已经存在的用户。 第1步:
在实例CH9-2的基础上添加一个“删除老用户”按钮,界面设计如下,
第2步: “删除老用户”按钮的代码如下,
实例CH9-4 设置用户密码
使用ADODC控件修改数据库文件mydb.mdb的sysuser表中用户的信息。 第1步:
在实例CH9-3的基础上添加一个“设置密码”的按钮,界面设计如下,
第2步:
“设置密码”按钮的代码如下,
7.4 执行查询
实例CH9-5 查询联系人
使用ADODC查询联系人,数据库使用ACCESS 2003“联系人示例数据库”Contact.mdb。 第1步:
在实例CH9-1
中新增“按姓氏查询”和“按名字查询”两个按钮,分别命名为
cmdFindSecondName和cmdFindFirstName界面设计如下,
第2步:
这两个按钮的单击事件填写如下代码,
9.5 综合实例
实例CH9-6 查询客户订单
数据库使用ACCESS2003的示例数据库“罗斯文数据库(Northwind.mdb)”,界面设计如下,
该数据库结构如下图所示:
核心代码如下:
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) Adodc1.Caption = "第" & Adodc1.Recordset.AbsolutePosition & _ "条记录 共" & Adodc1.Recordset.RecordCount & "条记录" End Sub
Private Sub Combo1_Click()
Adodc1.RecordSource = "SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量, 订单明细.折扣, " + _ " [订单明细]![单价]*[订单明细]![数量]*(1-[订单明细]![折扣]) AS 金额, 客户.公司名称" + _ " FROM 客户 INNER JOIN (订单 INNER JOIN" + _
" (产品 INNER JOIN 订单明细 ON 产品.产品ID = 订单明细.产品ID)" + _ " ON 订单.订单ID = 订单明细.订单ID) ON 客户.客户ID = 订单.客户ID" + _ " WHERE 客户.公司名称 = '" + Combo1.Text + "'" Adodc1.Recordset.Requery Adodc1.Refresh End Sub
Private Sub Form_Load()
Adodc1.RecordSource = "select * from 客户" Adodc1.Recordset.Requery Adodc1.Refresh Combo1.Clear
Adodc1.Recordset.MoveFirst
Do While Not Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields("公司名称") Adodc1.Recordset.MoveNext Loop
Combo1.ListIndex = 0
Adodc1.RecordSource = "SELECT 产品.产品名称, 订单明细.单价, 订单明细.数量, 订单明细.折扣, " + _ " [订单明细]![单价]*[订单明细]![数量]*(1-[订单明细]![折扣]) AS 金额, 客户.公司名称" + _ " FROM 客户 INNER JOIN (订单 INNER JOIN" + _
" (产品 INNER JOIN 订单明细 ON 产品.产品ID = 订单明细.产品ID)" + _ " ON 订单.订单ID = 订单明细.订单ID) ON 客户.客户ID = 订单.客户ID" + _ " WHERE 客户.公司名称 = '" + Combo1.Text + "'" Adodc1.Recordset.Requery Adodc1.Refresh End Sub …… 此处隐藏:1723字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




