我正在尝试为它们中的每一个过滤一定范围内的 x、y、z 坐标值的 DataTable。例如,我想查看 x 值大于 200 的行。我的问题是 DataTable 是从 DataGridView 中读取的,并且所有字段都被解释为字符串。此外,有几行缺少至少一个 x、y 或 z 值,因此我想排除这些。
作为对 x 值的测试,我尝试过
(dataGridView1.DataSource as DataTable).DefaultView.RowFilter = "[X Value]
IS NOT NULL AND CONVERT([X Value], 'System.Decimal') > 200.0";
这会导致错误消息“输入字符串的格式不正确”。我认为这是因为它试图将空值转换为小数。当行过滤器不包括[X Value] IS NOT NULL一半时,我会遇到同样的问题。
是否可以在单个 RowFilter 中完成所有这些操作?