1

将 Visual Studio 2010 Pro SP1 与 .NET Framework 4 SP1 一起使用。

我有这个简单的代码:

cmd.Parameters.Add("@tatCAN_FMS", SqlDbType.TinyInt).Value = gsmData.CANSquarellMode.Value ? 2 : 1;

其中cmd是 aSqlCommand并且gsmData.CANSquarellMode.Value = true; gsmData.CANSquarellbool?类型。

当我使用默认的“调试”配置调试此代码时@tatCAN_FMS = 2,正确的值是 的值。

但是,如果我使用默认的“发布”配置再次调试相同的代码,则@tatCAN_FMS = NULL. 为什么?

这是某种错误还是我错过了什么?

编辑1:

在默认的“发布”配置中,如果我手动设置

cmd.Parameters["@tatCAN_FMS2"] = gsmData.CANSquarellMode.Value ? 2 : 1; 

使用即时窗口将参数值设置为预期值 (2)。

4

1 回答 1

1

对包含参数值的 Parameters.AddWithValue(string name, object value) 使用重载,然后放入 gsmData.CANSquarellMode.Value ?2:1 在那里。

cmd.Parameters.AddWithValue("@tatCAN_FMS", gsmData.CANSqaurellMode.Value ? 2 : 1);

MS SqlParameterCollection.AddWithValue

于 2012-09-28T13:50:55.290 回答