用vb连接sql数据库时总是提示:ADODC:没有指定记录源[ADO]:没有为命令对象设置命令

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:07:26
使用的控件是adodc和datagrid
代码如下:

Private Sub Form_Load()

Dim strConn As String
Dim pubConn As New ADODB.Connection
Dim rsTable As New ADODB.Recordset
Dim strSQL As String

strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kaoqing;Data Source=JANSON"
pubConn.Open strConn

rsTable.CursorLocation = adUseClient
strSQL = "select * from attdcardrec"
rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTable

End Sub

Private Sub Form_Unload(Cancel As Integer)
Set DataGrid1.DataSource = Nothing
End Sub
ADO控件的属性只是使用了连接字符串.测试连接数据库是成功的.
datagrid控件只是设置了datasource为adodc1

删除了控件我要怎么和数据库连接啊?没了控件运行代码可是会报错的.

按你说的试了加载引用.可是还是不能.不能打开连接.pubConn.Open strConn到这里就运行不下去了.新建工程的时候选的是标准exe

那就是连接字符串或其他设置的问题了吗?恩.代码是正确的.我再调试看看.谢谢你的帮助.

strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=kaoqing;Data Source=JANSON"
不知上句的字符串内容是否正确。sql数据库的连接代码我没有,给ACCESS数据库的连接代码供参考:
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\hxrkgl.mdb;Persist Security Info=False"

你的其它代码经调试未发现问题,正确运用了ADODB数据对象。但从你的叙述中看,你另外使用了ADODC数据控件,是否是该功件的属性设置有问题。

补充:
1)ADODC数据控件作连接字符串正确后,如未指定数据表,运行会报错,你可删除该控件,运行你的代码不会有问题。
如果你是新建数据工程,VB会自行加载ADO数据对象。如果你是新建EXE工程,则应由工程菜单选引用选项,在其窗口选MICROSOFT ACTIVEX DATA OBJECTS 2.0 LIBRARY加钩即可。不过建议按新建数据工程简单。
2)我用以下代码调试你的主要代码,仅按新建EXE工程,则应由工程菜单选引用选项,在其窗口选MICROSOFT ACTIVEX DATA OBJECTS 2.0 LIBRARY加钩,并添加DATAGRID部件,无问题,在VB6调试:
Private Sub Form_Load()
Dim strConn As String
Dim pubConn As New ADODB.Connection
Dim rsTable As New ADODB.Recordset
Dim strSQL As String
'strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Securi