如何使用字符串数组来查询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);
Run Code Online (Sandbox Code Playgroud)
请不要像往常一样非常感谢任何帮助.谢谢
PS值,即Arraylist正在通过循环弹出,所以我不能有一个定义的大小.这就是为什么我不能使用get()方法并用逗号分隔其中的元素,这本来就更容易.
您的查询的where子句是where name = ?.这期望传入的数组大小为1.从它的名称(名称)来看,我猜不是.您需要重新考虑您希望SQL查询的内容(可能where name in ...).
例如:
final String whereClause = NAME + " in (" + convertToCommaDelimitedString(values) + ")";
db.query(true,DATABASE_TABLE, resultColumns, whereClause, null, null, null, null,null);
Run Code Online (Sandbox Code Playgroud)
你需要实施String convertToCommaDelimitedString(Collection c);
| 归档时间: |
|
| 查看次数: |
2707 次 |
| 最近记录: |