用VB执行SQL Server存储过程,并返回存储过程的查询记录。

kong200711 2013-10-11 02:23:45
如题,本人在SQL Server 2008示例数据库里面建了个存储过程,和VB使用ADO连接。

现有如下问题

存储过程在SQL server能正确执行,在VB里面也能执行得到返回条目数,但我现在希望能使用一个控件得到返回的具体条目,请问使用DataGridView能否实现,如不能该怎么做?本人新手,希望高手帮忙解答。

贴代码如下
Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset '每小时查询
Dim rs1 As New ADODB.Recordset '每天最大,最小值查询
Dim rs2 As New ADODB.Recordset '最大,最小值发生时间查询

'Dim fldCount As Integer
Dim strQuery As New ADODB.Command


Dim count As ADODB.Parameter
Dim ReturnValue As Integer


With conn
.ConnectionString = "DSN=Test;UID=sa;PWD=Pa$$wrd1212;" '查询连接字符串
.ConnectionTimeout = 30

End With
conn.Open() 'adAsyncConnect

Label1.Text = conn.State '连接状态判断
If Label1.Text = 0 Then
MsgBox("fail")
Else
MsgBox("success")
End If

'rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
'rs.LockType = ADODB.LockTypeEnum.adLockReadOnly
conn.CursorLocation = ADODB.CursorLocationEnum.adUseClient
strQuery.ActiveConnection = conn

strQuery.CommandText = "ProcedureKyy"
strQuery.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc

strQuery.Parameters(1).Value = "Dallas" 'OutputParameters可以为任意的字符串或数字
rs = strQuery.Execute
'rs.MoveFirst()
ReturnValue = strQuery.Parameters(0).Value '存储过程的返回值,返回0则成功执行。
Label2.Text = rs.EOF 'EOF判断,当前记录位置位于Recordset对象的最后一个记录之后
Label3.Text = rs.RecordCount '记录返回记录条数

Label4.Text = ReturnValue 'BOF判断,当前记录位置位于Recordset对象的第一个记录之前
DataGridView1.DataSource = rs.Fields
rs.Close()
conn.Close()
...全文
212 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-10-11
  • 打赏
  • 举报
回复
... rs = strQuery.Execute While Not rs.Eof ListBox.Items.Add(rs.Fields("字段")) rs.MoveNext End While ...

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧