У меня есть два случая, когда мне нужно было бы установить поле DateTime в Sql на ноль.Я использую C # и LINQ to SQL Classes.Я прочитал много вопросов о stackoverflow, которые похожи на мой вопрос, но все же я задаю свой вопрос немного иначе.
Когда мы добавляем нового клиента.
Соответствующий код:
Customer customer = new Customer();
customer.CustomerName = txt_name.Text;
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : //send null here;
customer.DOB - это System.DateTime.
То, что я пробовал:
1)
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : SqlDateTime.Null;
Но это не удастся, так как SqlDateTimeне может быть преобразован в System.DateTime.
2)
DateTime? nullDateTime = new DateTime();
customer.DOB = dtp_dob.Checked ? DateTime.Parse(dtp_dob.Value.ToString("yyyy-MM-dd")) : nullDateTime.Value
В этом случае сборка завершается успешно, но она вызывает исключение переполнения SqlDateTime.
Итак, как передать nullvalue
Свойство члена DOB в классе данных LINQ
![enter image description here](https://i.stack.imgur.com/uFYLS.png)
Многие из них предлагают установить для параметра «Автоматически сгенерированное значение» значение true, а не вставлять какое-либо значение.Правда, это работает в случаях вставки.
Но теперь предположим, что уже есть запись клиента, где какое-то значение даты / времени установлено в поле DOB.Теперь пользователь хочет очистить это значение (удалить дату рождения), затем в этом случае я должен передать нулевое значение, используя UpdateOn, чтобы очистить дату и время, хранящиеся в соответствующей строке клиента.
Заранее большое спасибо :)