将DataTable字段从String转换为double

时间:2017-12-08 16:03:09

标签: c# datatable

我正在尝试从我的SQL库中检索数据到DataTable并在某些字段上进行一些小数操作。

由于我可以获得string s,int中的doubleDataTable 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);

一个解决方法是让我的数据库做总和。

1 个答案:

答案 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));
}