2011-01-28 60 views
2

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

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

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

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

+1

可以查看SqlCommand对象的参数集合中的快速监视窗口? – Greg 2011-01-28 21:01:03

回答

0

尝试立即窗口:

? SQLCmd.Parameters["@MyParam"].Value 
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); 
    } 
}