版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,1 ADO对象模型 ADO(ActiveX Data Object)活动数据访问接口是Microsoft处理数据库信息的最新技术。采用OLE DB的数据访问模式,是数据访问对象DAO、远程数据对象RDO和开放数据库互连ODBC三种方式的扩展。 OLE对象链接使能,具有链接和嵌入对象的功能。 ADO对象模型定义了一个可编程的分层对象集合,主要由三个对象成员Connection、Command和Recordset对象,以及几个集合对象Errors、Parameters和Fields等所组成。,6.5 ADO数据控件,6.5 ADO数据控件,图6.13 ADO对象模型,6.5 ADO数据控件,6.
2、5 ADO数据控件,2 使用ADO数据控件 使用ADO数据控件,必须先通过工程 | 部件菜单命令选项。,6.5 ADO数据控件,选择Microsoft ADO Data Control 6.0(OLEDB),将ADO数据控件 添加到工具箱,在窗体中使用ADO 数据控件的方式与 Data控件相似,使 用ADO数据控件的 基本属性,可以快 速地创建与数据库 的连接。,在程序中使用ADO对象,必须先为当前工程引用ADO的对象库。引用方式是执行工程菜单的引用命令,启动引用对话框,在清单中选取MicrosoftActiveX Data Objects 2.0 Library选项。,6.5 ADO数据控件
3、,进入,1)ADO数据控件的基本属性 ConnectionString属性 ADO控件没有DatabaseName属性,它使用ConnectionString属性与数据库建立连接。该属性包含了用于与数据源建立连接的相关信息。,6.5 ADO数据控件,6.5 ADO数据控件,RecordSource属性 该属性确定可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中单个表名、一个存储查询或者是使用SQL查询语言的查询字符串。,ConnectionTimeout属性 用于数据连接的超时设置,若在指定时间内连接不成功显示超时信息。 MaxRecords属性 定义从一个查询中
4、最多能返回的记录数。,6.5 ADO数据控件,2) ADO数据控件的方法和事件 ADO数据控件的方法和事件与Data控件的方法和事件完全一样。 3)设置ADO数据控件的属性 下面通过使用ADO数据控件连接Student.mdb数据库来说明ADO数据控件属性的设置。,6.5 ADO数据控件,步骤1:在窗体上放置ADO数据控件,控件名采用默认名Adodcl。,6.5 ADO数据控件,步骤2:在ADO控件按鼠标右键,选择ADO属性时,弹出属性页对话框。,6.5 ADO数据控件,允许通过三种不同 的方式连接数据源,表示通过一个连 接文件来完成,使用ODBC数据资源名称 可以通过 下拉式列表框,选择某个
5、创建好 的数据源名称(DSN),作为数据来 源对远程数据库进行控制,通过选项设置自动产生连接字符串,步骤3:采用使用连接字符串方式连接数据源。,6.5 ADO数据控件,单击生成按钮,打开数据链接属性对话框,步骤3:采用使用连接字符串方式连接数据源。,6.5 ADO数据控件,在提供程序选项内选择一个合适的OLE DB 数据源,Student.mdb是Access数据库,选择 Microsoft Jet 3.51 OLE DB Provider 选项。,单击下步按钮,步骤3:采用使用连接字符串方式连接数据源。,6.5 ADO数据控件,在连接选项内, 指定数据库文件, Student.mdb,为保证
6、连接有效,可单 击连接选项卡右下方 的测试连接按钮,如 果测试成功则关闭数据 链接属性页,步骤4:在记录源属性页对话框。,6.5 ADO数据控件,在命令类型下 拉列表框中选择 2adCmdTable 选项,在表或存储过程名称 下拉式列表框中选择 Student.mdb数据库中 的基本情况表,完成ADO数据控件的连接工作。,进入,3 ADO数据控件上新增绑定控件的使用 和ADO数据控件的绑定控件属性主要包括: DataSource,DataField,DataMember,DataFormat DataSource和DataField的连接功能增强了; DataMember属性允许处理多个数据集
7、,从数据供应程序提供的几个数据成员中返回或设置一个特定的数据成员; DataFormat属性用于指定数据内容的显示格式。,6.5 ADO数据控件,6.5 ADO数据控件,例6.6 使用ADO数据控件和DataGrid数据网格控件浏览数据库Student.mdb,并使之具有编辑功能。 下图为具有增、删、改功能的数据网格绑定。,6.5 ADO数据控件,标有号的记录 行表示允许增 加新记录,进入,DataGrid控件使用方法: 需通过工程|部件菜单命令选择DataGrid控件,,6.5 ADO数据控件,将DataGrid 控件添加 到工具箱,DataGrid控件使用方法: 将DataGrid控件放置
8、到窗体上。 设置DataGrid网格控件的DataSource属性为Adodc1,实现DataGrid1绑定到数据控件Adodc1。,6.5 ADO数据控件,DataGrid控件允许用户同时浏览或修改多个记录的数据。,6.5 ADO数据控件,AllowAddNew(增) AllowDelete(删) AllowUpdate(改),修改功能通过DataGrid属 性设置实现,可以设置的 属性为:,进入,添加DataGrid网格上显示的字段,可用鼠标右键单击DataGrid控件,在弹出的快捷菜单中选择检索字段选项。Visual Basic提示是否替换现有的网格布局,单击是按钮就可将表中的字段装载到
9、DataGrid控件中。,6.5 ADO数据控件,用鼠标右键单击DataGrid控件,在弹出的快捷菜单中选择编辑选项,进入数据网格字段布局的编辑状态,此时,当鼠标指在字段名上时,鼠标指针变成黑色向下箭头。,6.5 ADO数据控件,在该窗体点击鼠标 右键,选择属性选项,可修改字段标题或 字段的显示宽度。,进入,必须使用ADO数据控件进行绑定的控件:,6.5 ADO数据控件,DataList控件 DataSource, DataFiled RowSource, ListFiled,必须使用ADO数据控件进行绑定的控件:,6.5 ADO数据控件,DataCombo控件 DataSource, Dat
10、aFiled RowSource, ListFiled,必须使用ADO数据控件进行绑定的控件:,6.5 ADO数据控件,DataReport控件,在“工程”菜单上,单击“添加 Data Enviroment”向工程中添加设计器。 如果设计器没有在工程菜单上列出,则单击部件。单击设计器选项卡。并单击数据环境把设计器添加到菜单上。,6.5 ADO数据控件,DataReport控件,点击鼠标右键,出现 菜单,选择属性,出现 数据链接属性对话 框,选择Microsoft Jet 3.51 OLE DB Provider,这是为 访问 Jet 数据库选择正确 的 OLE DB 提供商,单击下一步,6.5
11、 ADO数据控件,DataReport控件,指定数据库,测试连接,6.5 ADO数据控件,DataReport控件,点击鼠标右键,出现菜 单,选择添加子命令, 出现Command属性页,选择表,选择基本情况表,6.5 ADO数据控件,DataReport控件,选择表,点击关联,选择学生成绩表,点击鼠标右键,出现菜 单,选择添加子命令, 出现Command属性页,6.5 ADO数据控件,DataReport控件,父命令来自Command1,两个表通过学号相关联,6.5 ADO数据控件,DataReport控件,在“工程”菜单上,单击“添加 Data Report” 如果不在“工程”菜单上,先选择
12、工程,部件,设计器。添加Data Report。,6.5 ADO数据控件,DataReport工作区,资源管理器列表,DataPeport需要绑定两个属性,6.5 ADO数据控件,点击鼠标右键,选 择插入文本框,点击鼠标右键,选择插入标签,标签CAPTION=学生成绩表,点击鼠标右键,选择插入标签,文本框两个属性绑定设置,6.5 ADO数据控件,DataReport控件,在窗体中添加一个Command控件,并填写代码如下: Private Sub Command1_Click() DataReport1.Show End Sub 点击Command控件则可显示报表,DataReport1.Sh
13、ow,进入,必须使用ADO数据控件进行绑定的控件:,6.5 ADO数据控件,MSChart控件 DataSource,进入,基本情况表,SQL中使用SELECT语句实现查询。 Data控件的RecordSource属性可以是数据表名; RecordSource属性可以是数据表中的某些行或多个数据表中的数据组合。直接在Data控件的RecordSource属性栏中输入SQL,或在代码中通过SQL语句将选择的记录集赋给数据控件的RecordSource属性。,6.6 VB中的SQL实现,6.6 VB中SQL的实现,例6.8 使用SQL语句实现查找功能,显示某专业的学生记录。 使用SQL语句查询,命
14、令按钮Command5_Click事件代码如下:,6.6 VB中的SQL实现,进入,6.6 VB中的SQL实现,Private Sub Command5_Click() Dim mzy As String mzy = InputBox$(请输入专业, 查找窗) Data1.RecordSource = Select * From 基本_情况 Where 专业 = RecordSource属性:空缺 网格控件的DataSource:Data1。 分组查询:为了统计各专业的人数,对基本情况表内的记录按专业分组。使用Group By专业语句,将同一专业的所有记录合为一组新记录。 命名别名:要记录统计
15、结果,需要构造一个新的输出字段,使用SQL的统计函数Count()作为输出字段,它按专业分组创建统计值。由于在表中没有表示该内容的字段名,可用As短语命名一个别名,6.6 VB中的SQL实现,按专业统计人数按钮的指令代码为:,6.6 VB中的SQL实现,Private Sub Command1_Click() Data1.RecordSource = Select 专业,Count(*) As 人数 From 基本情况 Group By 专业 Data1.Refresh End Sub,如需要 按平均成绩统计前5名 按钮指令代码为:,6.6 VB中的SQL实现,Private Sub Comm
16、and2_Click() Data1.RecordSource = Select Top 5 学号,Avg(成绩) As 平均成绩 From 学生成绩表 Group By 学号 Order By Avg(成绩) Desc Data1.Refresh End Sub,Avg(成绩)计算该学生的平均成绩,Order By Avg(成绩) Desc按平均成绩的降序排列数据,Group By 学号将同一学生的 各门课程的记录合并成一条记录,Top 5短语返回最前面的5条记录,恢复原表内容按钮的指令代码为:,6.6 VB中的SQL实现,Private Sub Command3_Click() Data1
17、.RecordSource = 基本情况 Data1.Refresh End Sub,进入,例6.11使用ADO数据控件,用SQL语句从Student.mdb数据库的两个数据表中选择数据构成记录集。,6.6 VB中的SQL实现,进入,使用ADO数据控件Adodc1; 各文本框的Datasource=Adodc1,DataField属性分别设置为学号、姓名、课程、成绩,而字段照片绑定图形框。 ADO数据控件的数据源采用连接字符串的方式连接; 属性设置为与数据源连接的相关信息,数据链接属性设置与Student.mdb的数据连接。,6.6 VB中的SQL实现,记录源设置如下,6.6 VB中的SQL实
18、现,select 学生成绩表.*,基本情况.姓名,基本情况.照片 from 学生成绩表,基本情况 where 学生成绩表.学号=基本情况.学号,进入,例6.12 设计一个窗体,计算Student.mdb数据库内学生成绩表中每个学生的平均成绩,产生姓名、平均成绩和最低成绩三项数据,按平均成绩降序排列数据,并用该数据作图。,6.6 VB中的SQL实现,进入,绘制图表使用MsChart。MsChart控件需要通过工程 | 部件命令,将MSChart控件添加到工具箱。 MSChart1的DataSource绑定:Adodc1 将Adodcl的RecordSource属性设置为SQL语句:,6.6 VB
19、中的SQL实现,Select 基本情况.姓名,Avg(成绩) As 平均成绩,Min(成绩) As 最低成绩 From 学生成绩表,基本情况 Where 学生成绩表.学号=基本情况.学号 Group By 姓名 Order By Avg(成绩) Desc,学生成绩表中没有平均成绩和最低成绩这两项数据,在SELECT子句中使用统计函数Avg ()和Min()产生; 学生成绩表中没有姓名字段,故需要多表查询,通过条件基本情况.学号=学生成绩表.学号从基本情况表获取。 Group By 姓名可将同一学生的记录合并成一条新记录。,6.6 VB中的SQL实现,在CS结构中用ODBC与数据库连接和数据操作
20、。 例6.13 使用ADO数据控件和ODBC 技术,设计一个简单窗体,显示Student.mdb数据库的基本情况表。,6.7 VB中使用ODBC,6.7 VB中使用ODBC,进入,步骤1:在窗体上放置ADO数据控件,控件名采用默认名Adodcl。,6.5 ADO数据控件,步骤2:在ADO控件按鼠标右键,选择ADO属性时,弹出属性页对话框。,6.5 ADO数据控件,使用ODBC数据资源名称 可以通过 下拉式列表框,选择某个创建好 的数据源名称(DSN),作为数据来 源对远程数据库进行控制,步骤3:在创建新数据源对话框,选择数据源,6.5 ADO数据控件,只有创建者能访 问的数据库文件,登录该机器
21、的任何用户 都能访问的数据库文件,所有用户均可以访 问的数据库文件,数据源名就是系统知道的数据库文件名。数据源名 只要生成一次,此后任何应用程序都可以使用。如 果系统中没有数据源名,则需生成新的数据源名,步骤4:在创建新数据源对话框,选择驱动器,6.5 ADO数据控件,选择Microsoft Access Driver,步骤5:在属性页对话框,选择使用ODBC数据资源名称,6.5 ADO数据控件,使用ODBC数据资源名称 可以通过 下拉式列表框,选择某个创建好 的数据源名称(DSN),作为数据来 源对远程数据库进行控制,6.7 VB中使用ODBC,步骤6:单击“完成”按钮,生成数据源。指定的A
22、ccess数据库赋予新建的数据源。出现在ODBC Microsoft Access 安装窗口中,操作步骤如下:,设置数据源名为Student1,指定一个Access数据库Student.mdb 赋予新建的数据源Student1,步骤6:展开下拉清单,并选择student1数据源。,6.7 VB中使用ODBC,student1数据源已经注册到系统上, 不必再次生成。它会自动出现在ADO 数据控件属性页的使用ODBC数据资 源名称下拉清单中,进入,例6.14 ADO数据控件使用自己的高级约束数据控件,即DataList和DataCombo控件。,6.7 VB中使用ODBC,进入,DataList,
23、DataCombo,DataCombo控件属性设置 DataSourceAdodc1, DataFiled出生年月 RowSource= Adodc1,ListFiled出生年月 DataList控件属性设置 RowSource= Adodc1,ListField=学号。,6.7 VB中使用ODBC,DataList控件 vRowSource, ListFiled,DataCombo控件 DataSource,DataFiled,ListFiled,设置下拉菜单中的字段,设置文本中显示的字段,DataList控件中所选的学号对约束数据控件没有影响。如要在DataList清单中每次选择另一学号时
24、,同时移动ADO数据控件,需要加入一些代码:,6.7 VB中使用ODBC,Private Sub DataList1_Click() Adodc1.Recordset.Bookmark =_ DataList1.SelectedItem End Sub,返回一个值,包含 DataList 控件 中选中的记录的书签。,6.5.5 ADO对象编程,6.5.5 ADO对象编程,一 .ADO对象 (一)ADO对象介绍 ADO是ActiveX Data Obiect的缩写,是建立在OLE DB之上的高层数据库访问技术。ADO被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用
25、数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象.,6.5.5 ADO对象编程,(二)ADO对象最基本的操作流程: 初始化COM库,引入ADO库定义文件: 用Connection对象连接数据库; 利用建立好的连接,通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理; 使用完毕后关闭连接释放对象。,6.5.5 ADO对象编程,Sub ConnectionExample() Dim cnn as ADODB
26、.connection Set cnn=new ADODB.connection 通过ODBC DSN打开数据库 cnn.open pubs,sa, 检查是否成功建立连接对象 if cnn.state=adStateOpen then msgbox Welcome to pubs! else msgbox Sorry,no pubs! end 关闭连接对象 cnn.close End sub,使用 Open 方法建立到数据源的物理连接,pubs是SQL Server 安装附带的数据库,sa为system administrator,使用 Close 方法切断其 到数据源的物理连接,指示对象是打
27、开的,6.5.5 ADO对象编程,Set 语句 将对象引用赋给变量或属性。语法: Set objectvar = New objectexpression | Nothing,6.5.5 ADO对象编程,声明对象变量 声明对象变量的方法和声明其它变量一样,要用 Dim、ReDim、Static、Private 和 Public。仅有的不同在于可选的 New 关键字和 Class 参数。语法如下: Dim | ReDim | Static | Private | Public variable As New class 例如:Dim cnn as ADODB.connection Set cnn
28、 = New ADODB.Connection 例如:Dim cnn As New ADODB.Connection New 关键字为可选项。可隐式地创建对象的关键字。如果使用 New 来声明对象变量,则在第一次引用该变量时将新建该对象的实例,因此不必使用 Set 语句来给该对象引用赋值,两条语句等价于 下面一条语句,Open 方法 (ADO Connection) 功能:打开到数据源的连接。 语法 connection.Open ConnectionString, UserID, Password, OpenOptions 以下参数均为可选项 ConnectionString:包含连接信息的
29、字符串。 UserID:包含建立连接时所使用的用户名称。 Password:字符串,包含建立连接时所用密码。 OpenOptions:ConnectOptionEnum 值。如果设置为 adConnectAsync,则异步打开连接。如果设置为ConnectComplete当连接可用时将调用该事件。,6.5.5 ADO对象编程,二.用ADO操纵数据库 使用ADO操作数据库的主要步骤和方法: 打开数据库。 首先需要创建数据库连接对象(connection),然后调用该对象的Open方法即可打开数据库。 操作数据库数据。 在数据库打开之后,通过Connection、Command对象执行SQL命令,
30、或者创建记录集(Recordset)对象,使用该对象的各种方法就可以进行数据库数据的查询、定位以及增加、删除和修改。 关闭数据库。使用上面创建的数据库连接对象的close方法就可以进行数据库的关闭。,6.5.5 ADO对象编程,Connection对象的创建、连接以及关闭数据库的方法:,6.5.5 ADO对象编程,(一)AD0连接数据库 1连接到ODBC数据源的参数设置 Microsoft ODBC Provider允许ADO连接到任何ODBC的数据源。,(1)指定DSN或FileDSN的语法如下:,set con=new ADODB.connection con.Open Provider=
31、MSDASQL; DSN=name|FileDSN=filename; DATABASE=databasename; PWD=password,MSDASQL为默认值: Provider的默认参数值可以省略.,DSN或FileDSN,可通过Windows控制面板“ 中的ODBC管理器进行定义,set con=new ADODB.connection con.Open DRIVER=drivername; SERVER=servername; DATABASE=databasename; PWD=password,6.5.5 ADO对象编程,(2)无DSN(非DSN连接)的语法如下:,set c
32、on=new ADODB.connection con.Open provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:library.mdb;_ _ pwd=pwd cnn1.Open cnn1.DefaultDatabase = pubs 显示提供者 MsgBox cnn1 provider: Initial Catalog = pubs; ,sa 显示提供者 MsgBox cnn3 provider: uid=admin; pwd=;,方法:cnn.Open dsn=advWorks; uid=admin; pwd=;,通过以上介绍,可以总结出A
33、DO与不同数据库连接所使用的连接字符串如下: ODBC连接 ODBC-DSN连接,与IIS一同安装并位于 C:InetPub ASPSamp AdvWorks的数据源 AdvWorks.mdb,6.5.5 ADO对象编程,方法:cnn.Open driver=Microsoft Access Driver (*.mdb); ,ODBC连接 ODBC Driver for Access,VB提供的数据源驱动程序,允许ADO访问 Access数据库,6.5.5 ADO对象编程,ODBC连接 ODBC Driver for SQL Server,方法:cnn.Open driver=SQL Serv
34、er; server=myServerName;_ ,VB提供的数据源的驱动程序,允许ADO访问SQL Server数据库,6.5.5 ADO对象编程,OLE DB Provider连接 OLE DB Provider For Microsoft Jet,方法: con.Open provider=Microsoft.Jet.OLEDB.4.0;_ ,VB提供的连接字符串,允许 ADO 访问 Microsoft Jet 数据库,6.5.5 ADO对象编程,OLE DB Provider连接 OLE DB Provider For ODBC Database Access(Jet)方法:,cnn
35、.Open Provider=MSDASQL; driver=Microsoft Access Driver (*.mdb);_ ,Microsoft ODBC Provider 允许 ADO 连接到任何 ODBC 的数据源, 该连接字符串为ADO 的默认ODBC提供者,6.5.5 ADO对象编程,cnn.Open Provider=MSDASQL; driver=SQL Server; server=myServerName;_ ,OLE DB Provider连接 OLE DB Provider For ODBC Database SQL Server方法:,6.5.5 ADO对象编程,(
36、二)用记录集(Recordset)对象操纵数据 记录集(Recordset)对象是ADO操作中最常用的对象。,Open方法(ADO)Recordset 功能:打开游标。所谓游标是从数据源返回的满足 SQL 语句所规定的条件的行的集合。 recordset.Open Source, ActiveConnection, CursorType, LockType Open后面的参数均为可选项 参数 Source:指定Command 对象的变量名、SQL 语句、表名、存储过程调用或基本Recordset 文件名。 ActiveConnection:指定有效 Connection 对象变量名;或字符串,
37、包含ConnectionString参数。,CursorType:确定提供者打开 Recordset 时应该使用的游标类型。可为下列常量之一,健相当于书签,只可根据健集的 健值,添加、改变、获取或删除 基础数据库表或表的行。,行的动态集合,动态添加、 改变、获取或删除基本数据 库表或表的行。,打开客户端 Recordset 对象时唯一允许使用的游标类 型,使用这个游标相当于结果集的副本。,LockType:参数指定锁定类型以支持并发,参数可为下列常量之一,6.5.5 ADO对象编程,1创建、打开RecordSet对象以及浏览数据记录 下面来学习一个例子:,Sub ADOopenRecords(
38、) Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim fld As ADODB.Field 打开连接 cnn.Openprovider=Microsoft.Jet.OLEDB.4.0; Data Source=c:northwind.mdb;,6.5.5 ADO对象编程,打开方式 forward_only,read_only rst.Open select * from customers where region=WA, cnn, adOpenForwardOnly, 游标只能在记录中向前滚动 adLockReadOnly
39、只读功能,ActiveConnection,这两行均为默认值,数据库northwind中的表,6.5.5 ADO对象编程,Move,MoveNext,MoveFirst等方法,和DAO相同。,输出第一个记录的所有字段值 For Each fld In rst.Fields fld为字段 Debug.Print fld.Value Next Debug.Print rst.Close cnn.Close End Sub,Debug.Print在调试窗口的立即面板中输出,6.5.5 ADO对象编程,2查询数据记录 ADO的查询数据库记录的方法和DAO有所不同,DAO可以利用Recordset对象的
40、FindFirst、FindNext、FindLast、FindPrevious方法。 ADO只有Find方法。Find(ADO)方法的调用语法是:,RstName.Find Criteria , SkipRecords, SearchDirection , Start ,Criteria:字符串类型,包含用于搜索的指定列名、比较操作符和值的语句。比较只是针对于表中的单个字段。 比较符仅限于=、=、=和LIKE;,6.5.5 ADO对象编程,使用Like操作符允许查找一个字符串,字符串由单引号分隔(如“state = WA ”);日期值以“#”(数字记号)分隔(如“start_date #7
41、/ 22/ 97#”)。不能使用双引号(“)。 使用Like操作符,可以用星号(*)作为字符串值中的通配符。星号必须是值中的最后一个字符或值中的唯一字符,或者“_”(某字符只出现一次)。例如“state like M_”与 Maine 匹配。 state like M*”与Massachusetts 匹配。 SkipRecords是长整型值,默认值为零。它指定当前行或 start 书签的位移以开始搜索。,searchDirection指定搜索应从当前行还是搜索方向上的下一个有效行开始。其值可为 adSearchForward 或 adSearchBackward。搜索停止在记录集的开始还是末尾
42、则取决于 searchDirection 值。 start变体型书签,用作搜索的开始位置。,6.5.5 ADO对象编程,3增、删、改数据记录 ADO用与DAO采用相同的方法进行添加、删除操作。唯一不同点要先建立一个connection对象。 ADO还提供了一种快捷的添加方式.,修改现有记录时,ADO不需要调用Edit方法,直接对当前记录某字段属性赋值之后调用update方法就可以实现。,6.5.5 ADO对象编程,(三) ADO运行的查询语句 使用Connection对象的Execute方法,执行在 CommandText属性中指定的查询、SQL 语句或存储过程。查询内容由该方法的参数确定。
43、语法: 不返回查询的命令:,connectionExecute CommandText,RecordsAffected,Options,如果该命令为不按行返回查询,则返回时关闭 Recordset 对象。,6.5.5 ADO对象编程,Set recordset = connection.Execute CommandText,RecordsAffected,Options,按行返回查询的命令:,参数 CommandText:字符串,包含要执行的SQL语句、表名、存储过程等。 RecordsAffected:可选,返回操作所影响的记录数目。 Options:可选,指示提供者应如何为 Comman
44、dText 参数赋值,可为下列值之一。,主要常量说明: adCmdText:指示提供者应将 CommandText 赋值为命令的文本定义。 adCmdTable:指示 ADO 应生成 SQL 查询以便从 CommandText 命名的表中返回所有查询行。 adCmdStoredProc指示提供者应将 CommandText 赋值为存储过程。 adCmdUnknown指示 CommandText 参数中的命令类型未知。,Execute方法返回值: 返回 Recordset 对象引用。 如果用 New 关键字声明一个对象变量,Visual Basic 将自动创建一个对象,并在第一次使用该变量时赋值
45、对象引用。 例如cnn就是数据库连接的对象引用,建立好连接后,所以的数据库操作都要通过这个对象引用cnn来进行。 Execute方法使用如下例:,6.5.5 ADO对象编程,Sub ExcuteX() Dim cnn As ADODB.Connection Dim strSQL As String 定义SQL语句作为命令文本执行 strSQL =“update SPJ set PRICE = PRICE*1.06 Data Source=.项目零件供应.mdb; 执行查询命令 cnn.Execute strSQL cnn.Close End Sub,6.5.5 ADO对象编程,(四) ADO控
46、件及对象编程举例 例1 :使用ADO控件的属性和方法进行编程。使用绑定控件增加、删除、修改书籍(Titles)信息。,进入,6.5.5 ADO对象编程,表6.9 主要控件对象的属性,6.5.5 ADO对象编程,6.5.5 ADO对象编程,代码如下:,Private Sub Form_Load() 窗体加载 Adodc1.ConnectionString = provider=Microsoft.Jet.OLEDB.4.0;Data Source= Persist Security Info=FalseAdodc1.RecordSource = select * from TitlesAdodc
47、1.Refresh,6.5.5 ADO对象编程,For i = 0 To 5 Text1(i).Enabled = False Next i cmdsave.Enabled = False 添加记录按钮 cmdcancel.Enabled = False 删除记录按钮End Sub,6.5.5 ADO对象编程,Private Sub cmdadd_Click() 添加记录 Adodc1.Recordset.AddNew For i = 0 To 5 Text1(i).Enabled = True Text1(i).Text = Next i Text1(0).SetFocus,6.5.5 AD
48、O对象编程,cmdadd.Enabled = False cmddelete.Enabled = False cmdedit.Enabled = False cmdsave.Enabled = True cmdcancel.Enabled = True cmdmove(0).Enabled = False cmdmove(1).Enabled = False cmdmove(2).Enabled = False cmdmove(3).Enabled = FalseEnd Sub,6.5.5 ADO对象编程,Private Sub cmddelete_Click() 删除记录 Dim myval
49、 As String myval = MsgBox(是否要删除该记录?, vbYesNo) If myval = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast For i = 0 To 5 Text1(i).Enabled = False Next i End IfEnd Sub,6.5.5 ADO对象编程,Private Sub cmdedit_Click() 修改记录If Adodc1.Recordset.
50、RecordCount 0 Then For i = 0 To 5 Text1(i).Enabled = True Next i cmdsave.Enabled = True cmdcancel.Enabled = True cmdadd.Enabled = False cmdedit.Enabled = False cmddelete.Enabled = False,6.5.5 ADO对象编程,cmdmove(0).Enabled = False cmdmove(1).Enabled = False cmdmove(2).Enabled = False cmdmove(3).Enabled
51、= False Else MsgBox (没有要修改的记录!) End IfEnd Sub,6.5.5 ADO对象编程,Private Sub cmdsave_Click() 保存记录 If Text1(0).Text = Then MsgBox 书籍编号不能为空! Text1(0).SetFocus Exit Sub End If Adodc1.Recordset.Update For i = 0 To 5 Text1(i).Enabled = False Next i,6.5.5 ADO对象编程,cmdsave.Enabled = False cmdcancel.Enabled = Fal
52、se cmdadd.Enabled = True cmdedit.Enabled = True cmddelete.Enabled = True cmdmove(0).Enabled = True cmdmove(1).Enabled = True cmdmove(2).Enabled = True cmdmove(3).Enabled = TrueEnd Sub,6.5.5 ADO对象编程,Private Sub cmdcancel_Click() 放弃修改 Adodc1.Recordset.CancelUpdateFor i = 0 To 5 Text1(i).Enabled = Fals
53、e Next i cmdsave.Enabled = False cmdcancel.Enabled = False cmdadd.Enabled = True cmdedit.Enabled = True cmddelete.Enabled = True,6.5.5 ADO对象编程,cmdmove(0).Enabled = True cmdmove(1).Enabled = True cmdmove(2).Enabled = True cmdmove(3).Enabled = TrueEnd Sub,6.5.5 ADO对象编程,Private Sub cmdmove_Click(Index
54、As Integer) 移动记录指针 Select Case Index Case 0 Adodc1.Recordset.MoveFirst Case 1 Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then Adodc1.Recordset.MoveFirst Case 2 Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast,6.5.5 ADO对象编程,Case 3 Adodc1.Recordset.MoveLast E
55、nd SelectEnd SubPrivate Sub cmdExit_Click() 退出 Unload MeEnd Sub,进入,6.5.5 ADO对象编程,例2 :使用ADO对象进行编程,增加、删除、修改书籍(Titles)信息。控件不需要绑定,即text控件不需设置 Datasource和DataField属性。,ADO对象编程 注意:为了使用ADO对象编程,必须在程序中引入ADO对象。引入ADO对象的方法是选择菜单工程引用,在清单中选择Microsoft ActiveX Data Objects 2.0 Library。,进入,6.5.5 ADO对象编程,代码如下:,Dim rs A
56、s New ADODB.Recordset 声明数据库连接对象 Dim cnn As ADODB.Connection 声明记录集对象 Private Sub Form_Load() 窗体加载 Set cnn = New ADODB.Connection cnn.Open driver=Microsoft Access Driver _(*.mdb); Persist Security Info=False Set rs = New ADODB.Recordset rs.Open select * from titles, cnn, _ adOpenDynamic, adLockOptimis
57、tic 打开动态类型游标, 开放式锁定updata时才锁定,6.5.5 ADO对象编程,If rs.BOF And rs.EOF Then MsgBox 表中无记录! Else rs.MoveFirst Call viewdata End If For i = 0 To 5 Text1(i).Enabled = False Next i cmdsave.Enabled = False cmdcancel.Enabled = False End Sub,6.5.5 ADO对象编程,Private Sub viewdata() 浏览数据 On Error Resume Next Text1(0).
58、Text = rs.Fields(书籍编号) Text1(1).Text = rs.Fields(所属主题) Text1(2).Text = rs.Fields(作者) Text1(3).Text = rs.Fields(书籍名称) Text1(4).Text = rs.Fields(价格) Text1(5).Text = rs.Fields(数量) End Sub,6.5.5 ADO对象编程,Private Sub cmdadd_Click() 增加记录 rs.AddNew For i = 0 To 5 Text1(i).Enabled = True Text1(i).Text = Next
59、 i Text1(0).SetFocus,6.5.5 ADO对象编程,cmdadd.Enabled = False cmddelete.Enabled = False cmdedit.Enabled = False cmdsave.Enabled = True cmdcancel.Enabled = True cmdmove(0).Enabled = False cmdmove(1).Enabled = False cmdmove(2).Enabled = False cmdmove(3).Enabled = False End Sub,6.5.5 ADO对象编程,Private Sub cmddelete_Click() 删除记录 Dim myval As String myval
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版影视作品拍摄许可合同
- 面向云计算环境的分布式事务优化
- 2024年度碳排放权交易与减排项目合同
- 马匹运输与安全技术研究
- 金融科技环境下的金融安全治理
- 基于深度学习的X射线影像识别
- 智能数据分割新路径
- 2024年度物业服务合同范本下载
- 2024年度工程建设项目瓷砖采购合同
- 仓库人员安全培训
- 引水隧洞专项施工方案
- 初中英语-Unit5 What are the shirts made of教学设计学情分析教材分析课后反思
- UbuntuLinu操作系统上机实践实验题题库期末考试试卷24
- 2022-2023学年浙江省湖州市高二年级上册学期期末数学试题【含答案】
- 锂电池运输规范说明
- DBJ51∕T 081-2017 四川省城镇二次供水运行管理标准
- 《美丽中国是我家》 课件
- 110KV电缆敷设专项施工方案方案
- 《新时代劳动教育100问》读书笔记思维导图
- 仪表“三查四定”检查清单
- GB/T 7284-2016框架木箱
评论
0/150
提交评论