2013-10-08 3 views
-6

Как я могу проверить Start пустой или пустой:Как обрабатывать нулевые значения DATETIME в C#

Employee.CurrentLongTermIncentive.StartDate 

Я попытался следующие вещи:

Employee.CurrentLongTermIncentive.StartDate!=null // Start is empty it's falied. 

Employee.CurrentLongTermIncentive.StartDate.HasValue // Start is empty it's falied. 

как я могу проверить нуль или пустым значением для даты начала и назначить значение строки. Начальная дата имеет формат даты и времени.

+2

Как это терпеть неудачу тогда? С какой ошибкой? В каких сценариях? – Arran

+2

StartDate является 'DateTime' или' DateTime? 'Или 'Nullable ' или? –

+0

Пожалуйста, покажите нам определение 'StartDate'. –

ответ

0

Я думаю, вы могли бы хотеть if Employee.CurrentLongTermIncentive.StartDate != DateTime.MinValue

+0

В таблице LongTermIncentive для этого Сотрудника нет записи для даты начала, и я хочу проверить пустую дату начала. Код не будет выполнен. Исключение исключения .StartDate nullreference. – user2859125

4

Объект типа DateTime не может быть установлен в нуль. Вот почему ваш код может быть неудачным.

Вы можете попытаться использовать DateTime.MinValue, чтобы идентифицировать случаи, когда значение не было назначено.

Employee.CurrentLongTermIncentive.StartDate != DateTime.MinValue; 

Однако вы можете настроить DateTime быть обнуляемым с помощью следующей декларации.

DateTime? mydate = null; 

if (mydate == null) Console.WriteLine("Is Null"); 
if (mydate.HasValue) Console.WriteLine("Not Null"); 

Примечание: ? - это позволяет ненулевое значение назначенную в нуль.

Вы, кажется, использует DateTime? для времени начала, поэтому попробуйте следующее

if (!Employee.CurrentLongTermIncentive.StartDate.HasValue) { 
    Employee.CurrentLongTermIncentive.StartDate = (DateTime?) DateTime.Parse(myDateString); 
} 

myDateString, где есть строка, представляющая дату, которую необходимо назначить.

0

Если вы пытаетесь, чтобы отобразить его в текстовом поле просто сделать что-то вроде этого, просто убедитесь, что оба сотрудников и CurrentLongTermIncentive не нуль:

txtStartDate.Text = GetStartDate(Employee.CurrentLongTermIncentive.StartDate); 
private string GetStartDate(DateTime? startDate) 
{ 
     if (startDate != null) 
     { 
      return startDate.Value.ToShortDateString(); 
     } 
     return ""; 
} 
+0

Нет записи для даты начала в таблице LongTermIncentive для этого Сотрудника, и я хочу проверить пустую дату начала. – user2859125

Смежные вопросы