Я пишу подпрограмму C # для вызова хранимого процесса. В списке параметров, который я передаю, возможно, что одно из значений по закону может быть нулевым. Поэтому я решил использовать такую строку:
cmd.Parameters.Add(new SqlParameter("@theParam", theParam ?? DBNull.Value));
К сожалению, это возвращает следующую ошибку:
CS0019: оператор '??' не может применяться к операндам типа 'string' и 'System.DBNull'
Теперь, это кажется достаточно ясным, но я не понимаю обоснования этого. Почему бы это не сработало? (И часто, когда я не понимаю, почему что-то не работает, это не значит, что это не может работать ... это то, что я делаю это неправильно.)
Неужели мне действительно нужно растянуть это в более длинное выражение "если тогда"?
РЕДАКТИРОВАТЬ: (В дополнение к этому, для тех, кто предлагает просто использовать «null», как есть, это не работает. нет. (Кто знал?))