昨天我使用的TableAdapters时,由于某种原因,经过一个十进制<0.1它使得它转换成一个整数时注意到一个奇怪的行为。 例如,如果我通过1.0123,我可以在SQL事件探查见1.0123,但如果我通过0.0123,我将得到123是否有已知的问题? 你可以做下面的步骤来重现问题:
创建一个新的数据库TestDatabase,并创建以下存储过程
create proc DecimalParametersSelect ( @Foo decimal(10,5) ) as select @Foo
创建一个新的项目,并添加一个新的DataSet文件SampleDataset。 添加一个新的TableAdapter,并添加DecimalParametersSelect作为选择程序(它应该是在你的数据库中只有一个)。
运行项目,并尽量选择一些数据,例如
using (SampleDatasetTableAdapters.DecimalParametersSelectTableAdapter dta = new SampleDatasetTableAdapters.DecimalParametersSelectTableAdapter()) { var table = dta.GetData(0.01588M); }
在探查你应该看到,在传递的值是1588(有趣的是,返回值将在C#正确识别为0.01588)