【发布时间】:2013-06-19 21:33:11
【问题描述】:
当我从数据库中获取信息时,我无法格式化 Date 类型的信息。
我正在使用:
while (sqlReader.Read())
{
var payment = new Payment
{
Id = Convert.ToInt32(sqlReader["Id"]),
Amount = Convert.ToDecimal(sqlReader["Amount"]),
StartDay = Convert.ToDateTime(sqlReader["StartDay"]), //I want this to get this format dd.MM.yyyy
EndDay = Convert.ToDateTime(sqlReader["EndDay"]) //I want this to get this format dd.MM.yyyy
};
Payments.Add(payment);
}
我尝试了我的扩展方法:.ToShortDate(),尝试了DateTime.ParseExact,我不断得到这个:String was not recognized as a valid DateTime.
【问题讨论】:
-
你能显示
StartDay和EndDay的数据库值吗? -
您的 Convert.ToDateTime(sqlReader["StartDay"]) 是否有效,但只是没有返回所需的格式或根本不工作?
-
@GianAcuna 他们的数据库类型是“日期”,他们的值保存为“yyyy.dd.mm”
-
@kostasch。是的,它正在工作,但它没有返回所需的格式。我只希望日期在数据网格中显示为“dd.MM.yyyy”,但显示为“mm.dd.yyyy + time”
-
@Etrit 如果是这样,您必须找到显示该日期时间的列并相应地更改其
DefaultCellStyle.Format,例如DefaultCellStyle.Format = "dd.MM.yyyy",这应该可以工作:)
标签: c# winforms sql-server-2008-r2