Я использую типизированный набор данных с оператором вставки; У меня есть таблица с полем smalldatetime, определенным для принятия нулевых значений. Когда я вставляю из .NET 2.0 FormView, я получаю «переполнение SqlDateTime. Должно быть между 01.01.1753 12:00:00 и 31.12.9999 11:59:59 PM».
Теперь я прочитал это сообщение , а параметр, отправленный конструктору класса, определен как
global::System.Nullable<global::System.DateTime> DoB
Итак, похоже, он должен принимать Nullable obj. Кроме того, сгенерированный код проверяет отправленное значение.
if ((DoB.HasValue == true)) {
command.Parameters[6].Value = ((System.DateTime)(DoB.Value));
}
else {
command.Parameters[6].Value = global::System.DBNull.Value;
}
В частности, ошибка возникает при запуске сгенерированного SqlClient.SqlCommand.ExecuteScalar ():
try {
returnValue = command.ExecuteScalar();
}
Итак, я предполагаю, что мой вопрос таков: как мне использовать Typed DataSet, чтобы установить пустое значение (переданное из FormView в CommandName = Insert) в ноль в базе данных?