我正在尝试从数据库中选择一些数据,我有两片代码来做:
cursor = builder.query(db,new String[]{"col1","col2","col3"},"id = ?",new String[]{getSID(db)},null,null);
和
cursor = builder.query(db,"id = " + getSID(db),null);
它们之间的区别在于,根据文档,第一个似乎更正确,但它也不起作用 – 光标是空的.而不是第二个 – 我得到了我需要的所有数据.
所以我尝试在我的电脑上使用数据库副本执行不同的SQL查询,这就是我所拥有的:
SELECT col1,col2,col3 FROM SoMetables WHERE (id = '42')
SELECT col1,col3 FROM SoMetables WHERE (id = 42)
据我所知,sqlite应该自动执行类型转换,但出了点问题,我不知道为什么.您对如何修复第一个代码示例有什么想法吗? (或者,也许,数据库?)
如果重要,这里是带有id字段的表的简化CREATE脚本:
CREATE TABLE SoMetable ( ID PRIMARY KEY,col1,[...] )
UPD:顺便说一下,getSID(db)返回String Object.