gpt4 book ai didi

android - 使用数组查询 sqlite 数据库 android

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:43 25 4
gpt4 key购买 nike

我如何使用字符串数组来查询 sqlite 数据库?我不断收到异常“SQliteException:绑定(bind)或列索引超出范围”。

      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 ...)。

例如:

final String whereClause = NAME + " in (" + convertToCommaDelimitedString(values) + ")"; 
db.query(true,DATABASE_TABLE, resultColumns, whereClause, null, null, null, null,null);

你需要实现String convertToCommaDelimitedString(Collection c);

关于android - 使用数组查询 sqlite 数据库 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3985263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com