DBCC CheckDb - 在 VB.NET 中获取 sql 条消息
DBCC CheckDb - get sql messages in VB.NET
我正在使用此代码检查我的数据库是否有错误:
Dim cmd As New SqlCommand("DBCC CHECKDB (offpoDb) WITH TABLERESULTS", con)
cmd.ExecuteNonQuery()
但是,你看,这个命令只生成 SQL 条消息。
有什么方法可以检索 .net 中的消息吗?
我可以在 MessageBox
中显示消息吗?
我研究过InfoMessage,但我仍然不明白如何应用it/work。
使用 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
我正在使用此代码检查我的数据库是否有错误:
Dim cmd As New SqlCommand("DBCC CHECKDB (offpoDb) WITH TABLERESULTS", con)
cmd.ExecuteNonQuery()
但是,你看,这个命令只生成 SQL 条消息。
有什么方法可以检索 .net 中的消息吗?
我可以在 MessageBox
中显示消息吗?
我研究过InfoMessage,但我仍然不明白如何应用it/work。
使用 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