0

每当数据库中的价格值为 0.0 时,下面的 C# 代码就会给我一个 Casting 错误。字段类型是它正在从中读取的数据库中的浮点数。有谁知道这个问题?

double decPrice = (double)dsqry2.Tables[0].Rows[intCountOrders]["Price"];
4

3 回答 3

0

尝试

dsqry2.Tables[0].Rows[intCountOrders].Field<double>("Price")
于 2013-07-24T15:20:13.350 回答
0

使用Convert.ToDouble而不是铸造。

double decPrice = Convert.ToDouble(dsqry2.Tables[0].Rows[intCountOrders]["Price"]);
于 2013-07-24T15:02:09.057 回答
0

我最喜欢和最安全的解决方案很简单:

var x = dsqry2.Tables[0].Rows[intCountOrders]["Price"];
var decPrice = x is double ? (double)x : 0;
于 2013-07-24T15:04:30.507 回答