然后再声明Private adoConn As New ADODB.ConnectionPrivate adoRec As New ADODB.Recordset然后就可以操作数据库了。因为现在要用到datagrid,网上说它的dataSource要指向一个ADO data控件。我现在又回头看一下以前做的程序,有些地方又糊涂了。我添加的ado data控件,添上以后,名字是adodc。而我声明的Private adoConn As New ADODB.Connection却是adodb。为什么我添加了一个adodc的控件,要声明为adodb?而不添加这个控件,程序又会出错?adodc并没没有connection成员?ADODB.Recordset和adodc.Recordset是一个东西吗?添加ado data control到底有什么用啊?又没有使用这个控件。

答:

你理解有误:1)可以这样讲ADODC是封装的ADODB控件,你在窗体上添加ADODC控件后,VB则自动为工程引用Microsoft ActiveX Data Objects 2.5 Library(即引用ADODB),然后你当然可以使用ADODB了。

2)如果你只想用ADODB而不使用ADODC,你正确的做法是从VB的工程--引用里引用 Microsoft ActiveX Data Objects 2.5 Library 然后就可以定义操作ADODB了,不必添加ADODC控件。

3)ADODC有connection成员: Adodc1.Recordset.ActiveConnection

4)ADODB.Recordset和adodc.Recordset都是记录集。

5)如果你想给datagrid绑定数据源可以绑定ADODC,也可以绑定ADODB: set datagrid1.dataSource = ADODC1 这是绑定ADODC,需要添加ADODC控件。

---------------- dim adoConn As New ADODB.Connectiondim adoRs As New ADODB.Recordset

...set datagrid1.dataSource = adoRs 这是绑定ADODB,需要引用ADODB

建议使用ADO,不要使用ADODC控件,ADO更好控制一点,比如对多个表进行输入,删除操作,为了保持数据的完整性,可以使用事务来控制:

引用ADO后:

Private Sub Command1_Click()

Dim cn As New ADODB.Connection

’混合验证方式的连接:

cn.ConnectionString = “Provider=SQLOLEDB.1;Persist Security Info=False;User ID=登陆用户名;Password=登录密码;Initial Catalog=数据库名;Data Source=服务器别名/IP“

’集成验证方式的连接:

cn.ConnectionString = “Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=服务器别名/IP“

’设置客户端游标

cn.CursorLocation = adUseClient

cn.Open On

Error GoTo InsertErr

cn.BeginTrans ’开始事务

cn.Execute (“Insert Into 表1 values(’a1’,’b1’,’c1’)“)

cn.Execute (“Insert Into 表2 values(’a2’,’b2’,’c2’)“) ’......

cn.CommitTrans ’提交事务

Exit Sub

InsertErr:

cn.RollbackTrans ’回滚事务

MsgBox Err.Description

End Sub

top
Copyright © 2088 世界杯四强_世界杯裁判 - tylwn.com All Rights Reserved.
友情链接