次の方法で10進値をsprocに送信しています。
SqlParameter meh = new SqlParameter("Foo", SqlDbType.Decimal);
meh.Value = "0.00001";
meh.Precision = ((System.Byte)(12));
meh.Scale = ((System.Byte)(9));
データベースのプロファイルを作成して、データベースに対して何が実行されているかを確認すると、次のようなパラメーターが表示されます。
....,@Foo decimal(12,9),....,@Foo=10000,....
小数点から完全にミラーリングされているようですが、どうすれば修正できますか?また、最初に文字列を実際の10進数に変換し、それを使用して'meh.Value'を設定しようとしましたが、それでも同じ問題が発生することに注意してください。
更新しました
上記の例のように、元の値の小数点が9桁右にシフトしていることに気付きました。これは、スケールとまったく同じ値です。これは何が原因でしょうか?
再度更新
SqlServer2008を使用していることに注意してください