我如何使用字符串数组来查询 sqlite 数据库?我不断收到异常“SQliteException:绑定或列索引超出范围”。
String[] names = new String[values.size()]; // values is an Arraylist
String[] condition = values.toArray(names);
Cursor row = db.query(true,DATABASE_TABLE, resultColumns, NAME +"=" + "?", condition, null, null, null,null);
请像往常一样提供任何帮助,我们将不胜感激。谢谢
P.S 值,即 Arraylist 是通过循环填充的,因此我无法定义大小。这就是为什么我不能使用 get() 方法并用逗号分隔其中的元素,这样会更容易。
您的查询的 where 子句是where name = ?
。这期望传入的数组的大小为 1。从它的名称(名称)来看,我猜它不是。你需要重新考虑你想要的 SQL 查询是什么(也许where name in ...
).
E.g.:
final String whereClause = NAME + " in (" + convertToCommaDelimitedString(values) + ")";
db.query(true,DATABASE_TABLE, resultColumns, whereClause, null, null, null, null,null);
你需要实施String convertToCommaDelimitedString(Collection c)
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)