vb获取sql server存储过程返回的结果集
我创建了一个存储过程如下:CreatePROCEDURE[dbo].[Test]ASBEGINselect*fromabcEND然后在VB中写:PrivateSubFor...
我创建了一个存储过程如下:
Create PROCEDURE [dbo].[Test]
AS
BEGIN
select * from abc
END
然后在VB中写:
Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Cmd As New ADODB.Command
cn.ConnectionString = "provider=msdasql;driver={sql server};server=xxx.xxx.xxx.xxx;uid=xxx;pwd=xxx;database=xxx"
cn.Open
Cmd.ActiveConnection = cn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = "Test"
Set rs = Cmd.Execute()
MsgBox rs.RecordCount
End Sub
数据库中abc表有3条记录,但运行的时候弹出对话框显示rs.RecordCount的值为-1,为什么这里会是-1呢?我哪里写得不对?应该怎样写?
刚才我测试了一下,这样是可以获取到具体的结果集的,但为什么得不到正确的记录数呢? 展开
Create PROCEDURE [dbo].[Test]
AS
BEGIN
select * from abc
END
然后在VB中写:
Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Cmd As New ADODB.Command
cn.ConnectionString = "provider=msdasql;driver={sql server};server=xxx.xxx.xxx.xxx;uid=xxx;pwd=xxx;database=xxx"
cn.Open
Cmd.ActiveConnection = cn
Cmd.CommandType = adCmdStoredProc
Cmd.CommandText = "Test"
Set rs = Cmd.Execute()
MsgBox rs.RecordCount
End Sub
数据库中abc表有3条记录,但运行的时候弹出对话框显示rs.RecordCount的值为-1,为什么这里会是-1呢?我哪里写得不对?应该怎样写?
刚才我测试了一下,这样是可以获取到具体的结果集的,但为什么得不到正确的记录数呢? 展开
3个回答
展开全部
1 用ado,连接字符串参考下面代码.
dim sA as string
'ip方式
sA = "Provider=SQLOLEDB; Data Source= dbServer ,1433; Network Library=DBMSSOCN; ;Initial Catalog= dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord"
‘计算机名方式
sA = "Provider=SQLOLEDB;Data Source=dbServerName;Initial Catalog=dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord“
2 打开联接后不要用command,用cn
rs=cn.execute(”test()“)
’有参数的例子
rs=cn.execute(”test(1,22,’abc‘)“)
dim sA as string
'ip方式
sA = "Provider=SQLOLEDB; Data Source= dbServer ,1433; Network Library=DBMSSOCN; ;Initial Catalog= dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord"
‘计算机名方式
sA = "Provider=SQLOLEDB;Data Source=dbServerName;Initial Catalog=dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord“
2 打开联接后不要用command,用cn
rs=cn.execute(”test()“)
’有参数的例子
rs=cn.execute(”test(1,22,’abc‘)“)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 用ado,连接字符串参考下面代码.
dim sA as string
'ip方式
sA = "Provider=SQLOLEDB; Data Source= dbServer ,1433; Network Library=DBMSSOCN; ;Initial Catalog= dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord"
‘计算机名方式
sA = "Provider=SQLOLEDB;Data Source=dbServerName;Initial Catalog=dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord“
2 打开联接后不要用command,用cn
rs=cn.execute(”test()“)
’有参数的例子
rs=cn.execute(”test(1,22,’abc‘)“)
dim sA as string
'ip方式
sA = "Provider=SQLOLEDB; Data Source= dbServer ,1433; Network Library=DBMSSOCN; ;Initial Catalog= dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord"
‘计算机名方式
sA = "Provider=SQLOLEDB;Data Source=dbServerName;Initial Catalog=dbDataBaseName ;User ID= dbUserName ;Password= dbPassWord“
2 打开联接后不要用command,用cn
rs=cn.execute(”test()“)
’有参数的例子
rs=cn.execute(”test(1,22,’abc‘)“)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询