Выполнение команды DBCC из ADO.Net

2

Я пытаюсь выполнить DBCC CHECK DB ('MyDB) с помощью ADO.Net, но как я могу получить текст, возвращенный командой?

Я пробовал следующее:

SqlCommand sqlCom = new SqlCommand("DBCC CHECKDB ('MyDB')", sqlCon);
SqlParameter output = new SqlParameter();
output.Direction = System.Data.ParameterDirection.ReturnValue;
sqlCom.Parameters.Add(output);
int result = sqlCom.ExecuteNonQuery();
Console.WriteLine(output.Value);

Но значение выходного параметра пуст.

Теги:
ado.net
dbcc

1 ответ

2
Лучший ответ

Возможно, это может вам помочь: http://mspowershell.blogspot.com/2008/01/dbcc-check-through-adonetps.html.

EDIT:. Ссылка предоставит вам сообщение в блоге, содержащее следующие script:

$ScriptName = $myInvocation.MyCommand.Name
[void][reflection.assembly]::LoadWithPartialName("System.Data.SqlClient")
$ConnString = "Server=Servername\Instance;Integrated Security=SSPI;Database=DatabaseName;Application Name=$ScriptName"
$MasterConn = new-object ('System.Data.SqlClient.SqlConnection') $ConnString
$MasterCmd = new-object System.Data.SqlClient.SqlCommand 
$MasterCmd.Connection = $MasterConn
$SqlDBCC = "DBCC CHECKDB(master) WITH TABLERESULTS"
$MasterCmd.CommandText = $SqlDBCC
$MasterConn.Open()
$Rset = $MasterCmd.ExecuteReader()
If ($Rset.HasRows -eq $true) {
    While ($Rset.Read()) {
        $line = $Rset["MessageText"]
        If ($Rset["Level"] -gt 10) {
            Write-Host $line -backgroundcolor Yellow -foregroundcolor Red
        } else {
            Write-Host $line 
        }
    }
    $Rset.Close()
}
$MasterConn.Close()
  • 1
    Спасибо, «С ТАБЛИЧНЫМИ» все изменило.
  • 0
    Это ответ только для ссылок. Пожалуйста, добавьте важную часть к вашему ответу. Ссылки могут быстро сломаться ...
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню