繁体   English   中英

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

[英]Run SQL Stored Procedure And Return Print Message vb.net

我有一个带有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

提前致谢。

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

这已经在类似的问题中得到了解答: 通过使用oledb获取vb.net中sql server的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()

        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

再次感谢,刘易斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM