我希望在SQLCmd.ExecuteNonQuery()运行之前,看看我的SqlCommand将要发送到SQL Server的内容。
我正在尝试调试,因为我收到以下错误: System.FormatException:无法将参数值从String转换为Int32。
通常情况下,我会使用SQL Server Profiler查看发送到SQL Server的内容,但我的声明并没有那么做。
有没有办法确定它要转换的内容?我在确定哪个参数导致错误时遇到问题。
答案 0 :(得分:2)
没有任何东西可以快速为您显示,但您可以浏览对象并获取内部参数列表并单独查看其名称和值。
编写可以传递命令的内容可能会更快,并且会为每个参数打印出名称DbType
,Value.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