【问题标题】:Debug Mode: See what is in SqlCommand调试模式:查看 SqlCommand 中的内容
【发布时间】:2011-01-28 20:58:37
【问题描述】:

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

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

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

有没有办法确定它试图转换什么?我在确定哪个参数导致错误时遇到问题。

【问题讨论】:

  • 能在快速观察窗口中查看SqlCommand对象的Parameters集合吗?
  • 正如 Greg 所说,Quick Watch 窗口应该这样做或使用 Immediate 窗口。

标签: asp.net sql vb.net


【解决方案1】:

没有什么可以为您快速可视化它,但您可以浏览对象并获取内部参数列表并单独查看它们的名称和值。

只写一些可以传递命令的东西可能会更快,它会打印出每个参数的名称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);
    }
}

【讨论】:

    【解决方案2】:

    试试即时窗口:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2015-09-19
      • 1970-01-01
      相关资源
      最近更新 更多