Фильтр строк — «Невозможно выполнить операцию «=» для System.Double и System.String». когда значение равно null

Поэтому всякий раз, когда я запускаю следующий код, он работает, когда в поле со списком есть значения, но если значение равно null, оно отображается:

'Невозможно выполнить операцию '=' для System.Double и System.String.'

        DataView dv = new DataView(dt);
        dv.RowFilter =
                       "Price = '" + comboBox3.Text +
                       "' OR Model = '" + comboBox1.Text +
                       "' OR Supplier = '" + comboBox2.Text +
                       "' OR TotalPower = '" + comboBox6.Text +
                       "' OR Battery = '" + comboBox5.Text +
                       "' OR TireSize = '" + comboBox4.Text +
                       "' OR TireType = '" + comboBox9.Text +
                       "' OR Brakes = '" + comboBox8.Text +
                       "' OR WeightCapacity = '" + comboBox7.Text +
                       "' OR MinSpeed = '" + comboBox11.Text +
                       "' OR MaxSpeed = '" + comboBox10.Text + "'";

        dataGridView.DataSource = dv;

person Ace    schedule 12.12.2018    source источник
comment
Разве это не очевидно? Это в сообщении об ошибке. Помещая ' вокруг значения, вы делаете его строкой для целей сравнения. Затем вы пытаетесь сравнить эту строку с числом (двойным).   -  person Llama    schedule 12.12.2018
comment
не фильтровать, если значение равно null   -  person Just code    schedule 12.12.2018
comment
Свойство text элемента управления никогда не будет равно null. Это может быть пустая строка или строка, содержащая слово null, или что-то еще, что ввел пользователь. Если вы знаете, что в поле ожидаются числа, не передавайте значение Text. Добавьте надлежащую проверку, чтобы предотвратить ввод пользователем нечисловых данных. Используйте double.TryParse(), чтобы преобразовать значение в double и обнаружить любые ошибки.   -  person Panagiotis Kanavos    schedule 12.12.2018