SQLite的字符串未被识别为有效的DateTime'

时间:2015-08-24 14:50:50

标签: c# wpf sqlite datetime

我试图从我的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>

1 个答案:

答案 0 :(得分:0)

row["ReleaseTime"]的值已经是DateTime个对象,因此您无需将其转换为ToString的字符串,然后再将其转换回DateTime。而是将其直接转换为DateTime

DateTime releaseTimeGB = (DateTime)row["ReleaseTime"];

甚至更好,使用DataRow的{​​{3}}扩展程序:

DateTime releaseTimeGB = row.Field<DateTime>("ReleaseTime");