使用Array来查询sqlite数据库android

时间:2010-10-21 07:38:59

标签: android

如何使用字符串数组来查询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()方法并用逗号分隔其中的元素,这本来就更容易。

1 个答案:

答案 0 :(得分:5)

您的查询的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);

相关问题