将Visual Studio 2010 Pro SP1与.NET Framework 4 SP1一起使用。
我有这个简单的代码:
cmd.Parameters.Add("@tatCAN_FMS", SqlDbType.TinyInt).Value = gsmData.CANSquarellMode.Value ? 2 : 1;
其中cmd
是SqlCommand
和gsmData.CANSquarellMode.Value = true;
gsmData.CANSquarell
是bool?
类型。
当我使用默认的" Debug"来调试此代码时配置@tatCAN_FMS = 2
的值,正确的值。
但是,如果我使用默认的" Release"再次调试相同的代码。配置,@tatCAN_FMS = NULL
的值。为什么呢?
这是某些错误还是我错过了什么?
EDIT1:
默认情况下"发布"配置,如果我手动设置
cmd.Parameters["@tatCAN_FMS2"] = gsmData.CANSquarellMode.Value ? 2 : 1;
使用立即窗口将参数值设置为期望值(2)。
答案 0 :(得分:1)
使用包含参数值的Parameters.AddWithValue(字符串名称,对象值)的重载,并将你的gsmData.CANSquarellMode.Value?那里2:1。
cmd.Parameters.AddWithValue("@tatCAN_FMS", gsmData.CANSqaurellMode.Value ? 2 : 1);