Подтвердить что ты не робот

Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между 'string' и 'System.DBNull'

param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : DBNull.Value;

Почему это невозможно и любое предложение, что еще попробовать? Если /else для 20 параметров просто не подходит.

4b9b3361

Ответ 1

Проблема заключается в том, что (как указывает сообщение об ошибке) условное выражение требует либо одинаковых типов для обеих ветвей, либо должно быть неявное преобразование из одного из типов в другое. В вашем случае нет никого, и вы получите ошибку. Одно быстрое исправление будет отличать одно из значений до (object) (это хорошо, так как DbParameter.Value имеет тип object).

Итак, это должно сработать для вас:

param7[1].Value = tbLastName.Text.Length > 0 ? tbLastName.Text : (object)DBNull.Value;