【发布时间】:2013-12-26 05:13:33
【问题描述】:
我有一个包含以下列的 SQLite 数据库:_id、displayName、日期
使用以下 csharp 代码我正在尝试在 Sqlite 数据库中选择行,它适用于除日期之外的所有列!:
try
{
SQLiteConnection mDBConnection =
new SQLiteConnection("Data Source=C:\\Users\\x86\\Desktop\\db forms\\instances.db");
mDBConnection.Open();
SQLiteCommand mycommand = new SQLiteCommand(mDBConnection);
mycommand.CommandText = "SELECT _id, displayName, datetime(date) FROM instances";
SQLiteDataReader reader = mycommand.ExecuteReader();
dt.Load(reader);
reader.Close();
mDBConnection.Close();
foreach(DataRow row in dt.Rows){
string id = row["_id"].ToString();
string displayName = row["displayName"].ToString();
DateTime date = (DateTime)row["date"]; //Error Here: Column 'date' does not belong to table instances.
string datefromDb = row["date"].ToString(); // Same Error with this line...
MessageBox.Show(id + " " + displayName + " ");
};
}
catch (SQLiteException SqliteException)
{
MessageBox.Show(SqliteException.ToString());
}
我收到此错误:列“日期”不属于表实例。 “日期”列实际上确实存在于数据库中。如果我不在 datetime(...) 中包含日期列,它会在 dt.Load(reader) 处给出“字符串未被识别为有效的 DateTime”;
更新:这是数据库...它的列和类型。
数据库中的日期数据。
【问题讨论】:
-
也许你需要像
datetime(date) as date这样的别名 -
Yes vendetta " datetime(date, 'localtime') as date " 有效,它现在返回日期,但完全符合预期,即 1387539933510(就像它们保存在数据库中一样)。有什么想法吗?
-
你的数据库中日期列的列数据类型是什么?
-
它的类型是日期,它的名字也是'日期'
-
请查看更新后的问题