如何在C#中使字符串和日期时间值可以为null


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

如果我给A表添加一些值,并且我运行我的应用程序,则我有A表和B表。但在A表LeaveDate和ScdDept为空时,它看起来是"NULL",但在B表中,如果LeaveDate为空,则它看起来是maksvalue,而ScdDepart为空,那么它看起来是空的。我该如何解决这个问题?

方法1:如果数据未解析,这将设置默认值。它甚至返回解析是否完成。

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

方法2:在声明ScdDept时,将其设为可为null的

private string? ScdDept ;
private DateTime? LeaveDate ;

您的问题不清楚。可能是maksvalue,您的问题是MaxValue

根据您的评论和问题更新,我认为想要空值的LeaveDate列的DateTime.MaxValue

您的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());

相关内容

  • 没有找到相关文章

最新更新