Передайте нулевое значение datetime, используя EF model-first - PullRequest
0 голосов
/ 26 августа 2018

Я использую модель EF сначала в своем приложении и также использую хранимые процедуры.

Моя таблица имеет имя столбца LastStatus с типом datetime типа данных, и оно может быть обнуляемым.

КогдаПользователь заполняет datetime значение, оно работает правильно.

Вот мой код:

  (@StartAcceptDate IS NULL OR LastStatusDate >= @StartAcceptDate)
  AND  (@EndAcceptDate IS NULL OR LastStatusDate >= @EndAcceptDate)

Но когда пользователь хочет выбрать все записи, выпускают дату.

Многие записи имеют значение null.

Мой вопрос здесь: как передать null как datetime из C # в SQL Server?

Ответы [ 2 ]

0 голосов
/ 26 августа 2018

Вы можете объявить свой DateTime как обнуляемый, как это:

DateTime? StartAcceptDate;
DateTime? EndAcceptDate;

Таким образом, вы можете присвоить значение null переменным и отправить их в базу данных.

0 голосов
/ 26 августа 2018

Лучший способ - установить значение параметров по умолчанию на NULL в вашей хранимой процедуре, и вам не нужно явно передавать NULL вашей хранимой процедуре.

CREATE PROCEDURE dbo.Proc 
    (@param1 INT = NULL, 
     @param2 INT = NULL ....)

Если вы все еще хотите отправить NULL от вашего кода C # до вашей хранимой процедуры, вы можете использовать DBNull.Value

...