然后再声明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