2012-12-04 39 views
2

我保存一些对象与ServiceStack.OrmLite SQLite数据库与主键“ID INTEGER AUTOINCREMENT”。一切正常。SQLite select where where子句中的整数主键返回空结果

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

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

回答

0

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

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

查看SQLite Autoincrement了解更多信息。