我试图从我的SQLite数据库中的每一行中检索DateTime信息,但是我收到错误'字符串未被识别为有效的DateTime',我不知道为什么会发生这种情况所以任何帮助将不胜感激。
foreach (DataRow row in table.Rows)
{
string gameName = row["GameName"].ToString();
//DateTime releaseTime = (DateTime)row["ReleaseTime"];
DateTime releaseTimeGB = DateTime.ParseExact("dd/mm/yyyy", row["ReleaseTime"].ToString(), new CultureInfo("en-GB"));
gameInfo.Add(new GameInfo() { Name = gameName, ReleaseTime = releaseTimeGB});
}
现在上面代码中注释掉的部分确实有效,但它以我不想要的格式检索DateTime信息,因此错误来自ParseExact()
方法。在网上浏览后,很明显错误的确切来源是在ToString()
上调用row["ReleaseTime"]
方法,但我不确定如何纠正这个问题,因为这是我第一次使用SQLite。 / p>
答案 0 :(得分:0)
row["ReleaseTime"]
的值已经是DateTime
个对象,因此您无需将其转换为ToString
的字符串,然后再将其转换回DateTime
。而是将其直接转换为DateTime
:
DateTime releaseTimeGB = (DateTime)row["ReleaseTime"];
甚至更好,使用DataRow
的{{3}}扩展程序:
DateTime releaseTimeGB = row.Field<DateTime>("ReleaseTime");