我正在尝试从我的SQL库中检索数据到DataTable
并在某些字段上进行一些小数操作。
由于我可以获得string
s,int
中的double
和DataTable
s初始化为new DataTable();
。所以默认类型设置为 更新: 这是错误的,它是string
decimal
。所以不需要转换。
想象一下,我想从我的DataTable
myRow = 2;
double sum = 0;
foreach (DataRow row in data.Rows)
{
if (row.Field<String>(myRow) != "")
sum = sum + double.Parse(row.Field<String>(myRow), CultureInfo.InvariantCulture.NumberFormat);
}
我阻止添加空字段。所以我不会尝试转换空字符串。
无法将'System.Decimal'类型的对象强制转换为'System.String'。
如果没有“良好”的方式来转换它,我可以将DataTable
更改为仅decimals
,但Fill
如何使用Decimal
?
更新
由于默认类型为decimal
,我可以
sum = sum + (double) row.Field<decimal>(myRow);
一个解决方法是让我的数据库做总和。
答案 0 :(得分:0)
if(row.Field<String>(myRow) != ""){
var stringToDouble = Convert.ToDouble(row.Field<String>(myRow));
//Or you can do Convert.ToDecimal(row.Field<String>(myRow));
}