通过使用oledb获取vb.net中sql server的print语句的值

Anu*_*dra 2 sql t-sql vb.net sql-server ado.net

我正在尝试创建查询分析器和执行程序。

我想知道如何获取像'PRINT'这样的transact-sql语句的输出消息

declare @msg varchar(100)

set @msg =  select [column] from [table name] where [column] = [condition]

if @msg = 'SOMEVALUE'
 begin
   print 'This is first statement'
 end
else
 begin
  print 'This is second statement'
 end
Run Code Online (Sandbox Code Playgroud)

您能帮我在vb.net中获取上述代码的print语句的值吗?

提前致谢

Arm*_*man 5

MSDN

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

此处引用的参考消息包括print命令返回的值。

更新:

AddHandler myConnection.InfoMessage, New SqlInfoMessageEventHandler(AddressOf OnInfoMessage)

Private Sub OnInfoMessage(ByVal sender As Object, ByVal e As System.Data.SqlClient.SqlInfoMessageEventArgs)
        mySB.AppendLine(e.Message)
End Sub
Run Code Online (Sandbox Code Playgroud)

其中myConnection是您的SQL连接,而mySB是您的字符串生成器。

e.Message的值为print