在where子句中使用整数主键的SQLite select查询返回空结果

时间:2012-12-04 11:52:53

标签: c# sqlite servicestack ormlite-servicestack

我正在使用ServiceStack.OrmLite将一些对象保存到SQLite数据库,主键为“ID INTEGER AUTOINCREMENT”。一切正常。

但是当我尝试通过查询“SELECT * FROM Table WHERE(ID = 112)OR(ID = 113)”加载对象时,结果为空。

如果我将where子句更改为“(ID + 0 = 112)OR(ID + 0 = 113)”,则结果中有2行。 当我使用sqlite命令行工具探索数据库时,我看到所有记录都在这里,列类型是INTEGER,所有行的typeof(ID)返回“整数”。 什么可能是错的?

1 个答案:

答案 0 :(得分:0)

尝试使用 INTEGER PRIMARY KEY ...而不是 ID INTEGER AUTOINCREMENT ID INTEGER PRIMARY KEY AUTOINCREMENT 重新创建表格。

SQLite处理ROWID的方式因语法而异。

查看SQLite Autoincrement了解详情。