Как я могу сделать обнуляемую строку и значение даты и времени в C# - PullRequest
1 голос
/ 05 марта 2020
ScdDept = fields[8] is DBNull? null:fields[8].ToString();
LeaveDate = fields[9] is DBNulL?DateTime.MaxValue:DateTime.Parse(fields[9].ToString());

У меня есть таблица A и таблица B, если я добавляю какое-то значение в таблицу A и запускаю приложение B с той же добавленной стоимостью. Но в A таблица LeaveDate и ScdDept пустые, она выглядит как «NULL», а таблица B, если LeaveDate пустая, она выглядит как maksvalue, а ScdDept пустая, она выглядит пустой. Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Подход 1: Это установит значение по умолчанию, если данные не анализируются. Он даже возвращает, выполнен ли анализ или нет.

  String.TryParse( fields[8],out ScdDept );
  DateTime.TryParse(field[9],out LeaveDate );

Подход 2: При объявлении ScdDept сделать его обнуляемым

private string? ScdDept ;
private DateTime? LeaveDate ;
0 голосов
/ 05 марта 2020

Ваш вопрос не ясен. Может быть maksvalue вашего вопроса MaxValue.

При обновлении вашего комментария и вопроса я думаю, что вместо DateTime.MaxValue из LeaveDate столбца нужно нулевое значение.

Ваше свойство LeaveDate должно выглядеть как

public DateTime? LeaveDate { get; set; }

и затем вы реализуете так:

ScdDept = fields[8] is DBNull ? null : fields[8].ToString();
LeaveDate = fields[9] is DBNull ?  (DateTime?)null : DateTime.Parse(fields[9].ToString());
...