Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行SQL存储过程并返回打印消息vb.net_Sql_Sql Server_Vb.net_Stored Procedures - Fatal编程技术网

运行SQL存储过程并返回打印消息vb.net

运行SQL存储过程并返回打印消息vb.net,sql,sql-server,vb.net,stored-procedures,Sql,Sql Server,Vb.net,Stored Procedures,我有一个带有2个参数的存储过程,它返回的结果是一条PRINT消息。我可以传入参数并运行存储过程,但我不知道如何返回结果 Imports System.Data.Sql Imports System.Data.SqlClient Public Class Form1 Dim SQL As New SQLControl Dim cmd As New SqlCommand Private Sub RunSql_Click(sender As System.Object, e As

我有一个带有2个参数的存储过程,它返回的结果是一条
PRINT
消息。我可以传入参数并运行存储过程,但我不知道如何返回结果

Imports System.Data.Sql
Imports System.Data.SqlClient

Public Class Form1
   Dim SQL As New SQLControl
   Dim cmd As New SqlCommand

   Private Sub RunSql_Click(sender As System.Object, e As System.EventArgs) Handles RunSql.Click
      Try
        If SQL.HasConnection = True Then
            SQL.SQLCon.Open()
            cmd.Connection = SQL.SQLCon
            cmd.CommandText = "Exec stored procedure " & param1.Text & "," & param2.Text
            cmd.ExecuteNonQuery()
        End If
     Catch ex As Exception
        MsgBox(ex.Message)
     Finally
        SQL.SQLCon.Close()
     End Try
  End Sub
End Class
提前谢谢

您可以从SQL Server检索警告和信息性消息 使用SqlConnection对象的InfoMessage事件的数据源

这一点在一个类似的问题中得到了回答:
谢谢!我用你的链接做了更多的挖掘,我已经让它工作了

如果其他人需要示例,请修改下面的代码

Imports System.Data.Sql
Imports System.Data.SqlClient

Public Class Form1

Dim SQL As New SQLControl
Dim cmd As New SqlCommand

Private Sub RunSql_Click(sender As System.Object, e As System.EventArgs) Handles RunSql.Click

Try

    If SQL.HasConnection = True Then
        SQL.SQLCon.Open()
        cmd.Connection = SQL.SQLCon
        cmd.CommandText = "Exec stored procedure " & param1.Text & "," & param2.Text
        cmd.ExecuteNonQuery()

        AddHandler SQL.SQLCon.InfoMessage, New SqlInfoMessageEventHandler(AddressOf OnInfoMessage)

    End If

Catch ex As Exception
    MsgBox(ex.Message)
Finally
    SQL.SQLCon.Close()
End Try
End Sub

Private Shared Sub OnInfoMessage(sender As Object, args As SqlInfoMessageEventArgs)
    Dim err As SqlError
    For Each err In args.Errors
        MsgBox(err.Message)
    Next
End Sub

End Class
再次感谢, 刘易斯