gpt4 book ai didi

java - Android:SQLite 无法在索引处绑定(bind)参数,因为索引超出范围

转载 作者:行者123 更新时间:2023-11-29 23:18:48 26 4
gpt4 key购买 nike

我正在使用 SQLite 数据库来存储项目。当我使用 where 子句和选择参数按 id 调用项目时。如果我传递具有多个项目 ID 的选择参数数组,它会因错误而崩溃:

Cannot bind argument at index 2 because the index is out of range. The statement has 1 parameters.

这是我执行查询的方式:

    override fun onCreateLoader(id: Int, args: Bundle?): Loader<Cursor> { 
loaderId = id
val selectionArgs = arrayOf("2", "1")
return CursorLoader(activity!!,
MenuContract.ItemEntry.CONTENT_URI,
Constants.ITEM_PROJECTION_COLUMNS,
MenuContract.ItemEntry._ID + "=?",
selectionArgs,
null
)
}

如果 selectionArgs 数组只包含一个 id,它工作正常。不知道为什么。

最佳答案

选择参数的数量必须与 ?(占位符)的数量相匹配。所以错误基本上是说我应该把第二个参数放在哪里,因为我已经替换了第一个?(占位符)

只有 1 个数组元素时有效,因为只有 1 个 ?(占位符)。

也许你想要:-

MenuContract.ItemEntry._ID + "=? OR " + MenuContract.ItemEntry._ID + "=?",

然后两个参数都有一个占位符。

关于java - Android:SQLite 无法在索引处绑定(bind)参数,因为索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54835161/

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