Я пытаюсь отфильтровать DataTable значений координат x, y, z в определенном диапазоне для каждого из них. Например, я хочу видеть строки со значением 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?