List<exchange_rates> exch_rate_list = new List<exchange_rates>();
foreach (DataRow dr in ExchangeRates.Rows)
{
exch_rate_list.Add(new exchange_rates {
one_usd_to_currency = Convert.ToDouble(dr["one_usd_to_currency"]),
currency = dr["currency"].ToString(),
});
}
我收到一条错误,指出此时无法将对象从DBNull强制转换为其他类型one_usd_to_currency = Convert.ToDouble(dr["one_usd_to_currency"])
,有人可以指导我解决这个错误,我通过更改数据类型尝试了多种处理方式,如果你能指导我解决这个冲突,我真的很感激,非常感谢!
答案 0 :(得分:2)
当您获得DBNull
作为结果时,您必须使用此代码,因为DBNull
是一种自有类型,无法转换为不同的System.Object
:
var dbValue = dr["one_usd_to_currency"];
if(dbValue != DBNull.Value) one_usd_to_currency = Convert.ToDouble(dbValue);
答案 1 :(得分:-1)
你可以尝试....
foreach (DataRow dr in ExchangeRates.Rows) {
if (dr["one_usd_to_currency"] == null)
dr["one_usd_to_currency"] = 0;
exch_rate_list.Add(new exchange_rates {
one_usd_to_currency = Convert.ToDouble(dr["one_usd_to_currency"]),
currency = dr["currency"].ToString(),
});
}