Member 14944662 Ответов: 3

Строка не распознана как действительное значение datetime сущности рамок


Я хочу передать строку типа "-" в Crystal Report, когда DateOfBirth равен нулю


я использую этот код для передачи даты в crystal report

 <pre>.Select(u => new
{

u.EmployeeCode,
u.EmployeeName,
JopName = string.IsNullOrEmpty(u.JopName) ? "-" : u.JopName,
Date_Hiring = u.Date_Hiring.GetValueOrDefault(),
AdministrationName = string.IsNullOrEmpty(u.AdministrationName) ? "-" : u.AdministrationName,
DepartmentName = string.IsNullOrEmpty(u.DepartmentName) ? "-" : u.DepartmentName,
PranchName = string.IsNullOrEmpty(u.PranchName) ? "-" : u.PranchName,
DateOfBirth =Convert.ToString(u.DateOfBirth) == string.Empty ? DateTime.Parse("-") : u.DateOfBirth
})
 .ToList();


а это мой класс

<pre>public partial class SR1_Result
 {
   public int EmployeeCode { get; set; }
   public string EmployeeName { get; set; }
   public string JopName { get; set; }
   public Nullable<System.DateTime> Date_Hiring { get; set; }
   public Nullable<double> Nat_Salary { get; set; }
   public string AdministrationName { get; set; }
   public string DepartmentName { get; set; }
   public string PranchName { get; set; }
   public string MobilePersonalNo { get; set; }
   public string MobileWorkNo { get; set; }
   public Nullable<System.DateTime> DateOfBirth { get; set; }
}


Что я уже пробовал:

я пытаюсь передать " -", когда дата рождения равна нулю

используя это
DateOfBirth =Convert.ToString(u.DateOfBirth) == string.Empty ? DateTime.Parse("-") : u.DateOfBirth


но получите эту ошибку

System.FormatException: 'String was not recognized as a valid DateTime.'

3 Ответов

Рейтинг:
5

Member 14944662

я использую этот метод и прекрасно работаю

DateOfBirth = u.DateOfBirth == null ? "-":u.DateOfBirth.Value.ToShortDateString()


Рейтинг:
1

TheRealSteveJudge

Вы можете только присвоить действительное значение datetime значения или null значение null&ЛТ;система.датавремя&ГТ; DateOfBirth.
Вы не можете назначить строку переменной DateTime.
Вы не можете разобрать '-' на DateTime.


Рейтинг:
1

Sandeep Mewara

Почему бы не сделать что-нибудь попроще, например:

var neededString = DateOfBirth.HasValue ? DateOfBirth.ToString() :  "-";

Ссылаться: Свойство nullable<T>.HasValue (System) | Microsoft Docs[^]
Цитата:
Возвращает значение, указывающее, имеет ли текущий объект Nullable<t> допустимое значение его базового типа.