1

.NET Framework 4 SP1 で Visual Studio 2010 Pro SP1 を使用します。

私はこの簡単なコードを持っています:

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

は型です。cmd_SqlCommandgsmData.CANSquarellMode.Value = true; gsmData.CANSquarellbool?

デフォルトの「デバッグ」構成を使用してこのコードをデバッグすると@tatCAN_FMS = 2、正しい値である の値が表示されます。

しかし、デフォルトの「リリース」構成を使用して同じコードを再度デバッグすると、@tatCAN_FMS = NULL. なんで?

これは何らかのバグですか、それとも何か不足していますか?

EDIT1:

デフォルトの「リリース」構成で、手動で設定した場合

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 に答える