我正在编写一个小型控制台应用程序并且正在从数据库中检索数据,并且需要将日期时间数据显示为" 00000000"当保存在数据库中的值为空时。
我试过这个
string temp = v.CompetentDate != null ? v.CompetentDate : "00000000";
DateTime competentdate = DateTime.Parse(temp);
v.CompetentDate = competentdate.ToString("ddMMyyyy");
但获得String was not recognised as a valid DateTime
如何才能获得价值' 00000000'如果数据库中的值为null。
答案 0 :(得分:3)
为什么要将字符串转换为日期时间然后再转换为字符串?只需设置字符串值
v.CompetentDate = v.CompetentDate ?? "00000000";
答案 1 :(得分:2)
您可以像这样使用DateTime.TryParse Method:
DateTime temp;
v.CompetentDate = DateTime.TryParse(competentdate,out temp)?
temp.ToString("ddMMyyyy"):
"00000000";
答案 2 :(得分:1)
DateTime.MinValue.ToString("ddMMyyyy")
返回01010001
而不是00000000
。这就是为什么在尝试DateTime.Parse("00000000");
时会出现异常的原因。
相反,你可能想要这个(即使我会使用01010001
代替00000000
):
v.CompetentDate = v.CompetentDate != null
? DateTime.Parse(v.CompetentDate).ToString("ddMMyyyy")
: "00000000";
顺便说一句,为什么不让DateTime
使用CompetentDate
?
答案 3 :(得分:0)
试试吧
string temp = v.CompetentDate != null ? v.CompetentDate : "00000000";
DateTime competentdate = DateTime.Parse(temp);
v.CompetentDate = competentdate.ToString("dd,mm,yyyy");