在列中查找最大数值时,如何忽略列中非数值的数据?

时间:2019-08-27 19:36:58

标签: c# datatable dbnull

我在数据表中有一列,通常由数值组成,但在极少数情况下,列中会出现字母。这是由于进行测量的定制设备导致的,并且当测量超出其限制范围时,将记录一个单词或缩写。 话虽如此,我在从列中获取最大值时遇到了问题,因为一个或多个行可能包含字母。

我收到错误消息“无法将对象从DBNull强制转换为其他类型”!

  Decimal maxDataValue = Convert.ToDecimal(mainDataTable.Compute("max([Data])", string.Empty));
  Decimal roundMaxData = Math.Round(maxDataValue);

这是一种解决包含字母的行并在列中找到最大数值的方法吗?

1 个答案:

答案 0 :(得分:2)

您看到的错误是您的数据中也包含空值。试图求和的列中包含字符串数据的另一个问题使得难以直接使用gl3wInit()。您可以将DataTable转换为Enumerable,然后使用Linq对其进行操作。像这样的事情可能会起作用...它返回Compute作为结果。

6.25