c# SqlDataAdapter将Column of Decimal中的所有值转换为零
本文关键字:转换 SqlDataAdapter Column of Decimal | 更新日期: 2023-09-27 18:05:11
我使用SqlDataAdapter来填充来自SQLServer表的数据集。除了Transaction列(在数据库中是Decimal类型)外,所有列都被正确填充。这些值都变成0.0。
代码:using (SqlConnection dbconn = new SqlConnection (connection_string)) {
SqlDataAdapter adapter = new SqlDataAdapter (query, dbconn);
exposureSequence = new DataSet ();
adapter.Fill (exposureSequence, "ExposureSequence");
}
此代码
foreach(DataRow r in exposureSequence.Tables["ExposureSequence"].Rows){
Console.WriteLine(r["TransactionAmount"] + ", ");
}
打印
0.0000,
0.0000,
0.0000,
...
但是如果我这样做:
using (IDataReader reader = dbcmd.ExecuteReader()) {
while(reader.Read()){
//int ActionClientID = (int) reader["ActionClientID"];
Decimal TransactionAmount = (Decimal) reader["TransactionAmount"];
Console.WriteLine(TransactionAmount);
}
我的输出是:
164.4950
164.4950
164.4950
...
为什么是适配器。填充将TransactionAmount值转换为0.000?
我看不出你发布的两个版本的代码有什么区别。你应该得到相同的结果。如果使用dataReader或dataAdapter执行相同的查询,不同之处在于它们的执行方式,而不是得到的结果。执行时是否使用相同的查询?如果你这样做,我相信问题可能在其他地方(而不是在两个版本的差异)。