c# - 从 ADO.Net 执行 DBCC 命令

标签 c# ado.net dbcc

我正在尝试使用 ADO.Net 执行 DBCC CHECK DB('MyDB),但我怎样才能获得命令返回的文本?

我尝试了以下方法:

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);

但是输出参数值为空。

最佳答案

也许这可以帮助您:http://mspowershell.blogspot.com/2008/01/dbcc-check-through-adonetps.html .

编辑:该链接会将您带到包含以下脚本的博客文章:

$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()

关于c# - 从 ADO.Net 执行 DBCC 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1672714/

相关文章:

c# - 使用 DbGeography 的 MultiPolygon 和 Polygon 的交集

用于修改和检索 SQL Azure 数据的 C# .Net 桌面应用程序?

c# - Entity Framework 连接池 : how to inject UserId into SQL Servers session_context?

sql-server - DBCC SHRINKFILE 会终止事件事务吗?

c# - 如何在资源文件中查找?

.net - 经典 ADO.NET - 如何将 UDT 传递给存储过程?

ado.net - SQL Server 和 ADO NET : how to automatically cancel long running user query?

sql - DBCC CLEANTABLE 未释放已用空间

sql - 将 SQL Server 数据库迁移到多个文件

c# - .ToBitmap : Missing 'Using Directive' or 'Assembly Reference'