Ответ 1
Оба операнда должны быть объектами. Использовать явное выражение:
(object)table.Value ?? DBNull.Value;
У меня есть следующий код С#:
sqlCommand.Parameters.AddWithValue("@Parameter", table.Value ?? DBNull.Value);
Но он выдает следующую ошибку компиляции:
Оператор
??
не может применяться к операндам типаstring
иSystem.DBNull
Почему компилятор не разрешает этот синтаксис?
Оба операнда должны быть объектами. Использовать явное выражение:
(object)table.Value ?? DBNull.Value;
Нет автоматического преобразования между string
и System.DBNull
, поэтому вам нужно указать тип, который вы хотите явно, добавив приведение к object
:
sqlCommandObject.Parameters.AddWithValue("@Parameter",
table.Value ?? (object)DBNull.Value);
Это потому, что между string
и System.DBNull
нет неявного преобразования.