DBCC CheckDb - 在VB.NET中获取sql消息

时间:2017-12-12 07:33:59

标签: sql-server vb.net dbcc

我正在使用此代码检查数据库中的错误:

desc

但是,你看,这个命令只生成SQL消息。

有没有办法检索.net中的邮件?
我可以在Dim cmd As New SqlCommand("DBCC CHECKDB (offpoDb) WITH TABLERESULTS", con) cmd.ExecuteNonQuery()

中显示消息

我已经研究过InfoMessage,但我仍然无法理解如何应用它/使用它。

1 个答案:

答案 0 :(得分:1)

使用SqlDataReader代替ExecuteNonQuery获取TABLERESULTS返回的记录集:

Dim strBuilder As New System.Text.StringBuilder
Using cmd As New SqlClient.SqlCommand("DBCC CHECKDB (offpoDb) WITH TABLERESULTS", con)
    Dim reader As SqlClient.SqlDataReader
    reader = cmd.ExecuteReader

    While reader.Read
        strBuilder.AppendLine(CStr(reader("MessageText")))
    End While

    reader.Close()
End Using

MessageBox.Show(strBuilder.ToString)

要查看返回的所有列,请在SQL Server Management Studio中执行查询。

如果您更喜欢使用InfoMessage - 事件,请添加处理程序并使用如下:

Sub MyMethod()
    Using con As New SqlClient.SqlConnection("<yourConnectionString>")
        con.Open()

        AddHandler con.InfoMessage, AddressOf InfoMessage

        Using cmd As New SqlClient.SqlCommand("DBCC CHECKDB (offpoDb)", con)
            cmd.ExecuteNonQuery()
        End Using

        con.Close()
    End Using
End Sub

Private Sub InfoMessage(sender As Object, e As SqlClient.SqlInfoMessageEventArgs)
    MessageBox.Show(e.Message)
End Sub