调试模式:查看SqlCommand中的内容

时间:2011-01-28 20:58:38

标签: asp.net sql vb.net

我希望在SQLCmd.ExecuteNonQuery()运行之前,看看我的SqlCommand将要发送到SQL Server的内容。

我正在尝试调试,因为我收到以下错误: System.FormatException:无法将参数值从String转换为Int32。

通常情况下,我会使用SQL Server Profiler查看发送到SQL Server的内容,但我的声明并没有那么做。

有没有办法确定它要转换的内容?我在确定哪个参数导致错误时遇到问题。

2 个答案:

答案 0 :(得分:2)

没有任何东西可以快速为您显示,但您可以浏览对象并获取内部参数列表并单独查看其名称和值。

编写可以传递命令的内容可能会更快,并且会为每个参数打印出名称DbTypeValue.ToString()Value.GetType().Name

void PrintCommand(DbCommand command)
{
    Console.WriteLine("CommandType: {0}", command.CommandType);
    Console.WriteLine("CommandText: {0}", command.CommandText);

    foreach(var parameter in command.Parameters)
    {
        Console.WriteLine("    Parameter {0}, {1}: \"{2}\" ({3})", 
            parameter.ParameterName, 
            parameter.DbType,
            parameter.Value,
            parameter.Value.GetType().Name);
    }
}

答案 1 :(得分:0)

尝试即时窗口:

? SQLCmd.Parameters["@MyParam"].Value