У меня есть sql-запрос с параметром, который может быть нулевым в базе данных (Sql Server). Метод обновления работает нормально до тех пор, пока этот пользователь не поместит пробел в поле, это приведет к нулевому значению для объекта DataTime (этот объект является нулевым). Проблема в том, что dbCommand.ExecuteNonQuery();
.
Вот как я создаю параметр для этого поля:
IDataParameter dbParam_au_id = new SqlParameter();
dbParam_au_id.ParameterName = "@birthday";
dbParam_au_id.Value = birthday;
dbParam_au_id.DbType = DbType.DateTime;
dbCommand.Parameters.Add(dbParam_au_id);
Я пытаюсь преобразовать нулевое значение дня рождения в DBNull.Value:
IDataParameter dbParam_au_id = new SqlParameter();
dbParam_au_id.ParameterName = "@birthday";
dbParam_au_id.Value = birthday??DBNull.Value;
dbParam_au_id.DbType = DbType.DateTime;
dbCommand.Parameters.Add(dbParam_au_id);
Но этот код не будет компилироваться, и я получаю ошибку:
Ошибка 1 Оператор '??' не могут применяться к операндам типа "System.DateTime"? и 'System.DBNull'
Любая идея?