android - 在 Android SQLITE 中删除多行
问题描述
在我的应用程序中,我试图同时执行两个删除查询,它们使用相同的输入进行删除。我正在使用 IN 子句。但我收到一个错误。我的键是一个字符串值。
方法....
public void deleteUsingList(String[] ids) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_FAV_AMEN, KEY_AD_ID + " IN (" + "?)", ids);
db.delete(TABLE_FAV_HEAD, KEY_AD_ID + " IN (" + "?)", ids);
db.close();
}
我的错误....
2019-04-14 19:57:48.102 14802-14802/com.estate.dushanmadushanka.estate E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.estate.dushanmadushanka.estate, PID: 14802
java.lang.IllegalArgumentException: Too many bind arguments. 2 arguments were provided but the statement needs 1 arguments.
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java)
at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java)
at com.estate.dushanmadushanka.estate.other.SQLiteHandler.deleteUsingList(SQLiteHandler.java:159)
at com.estate.dushanmadushanka.estate.activity.FavouriteActivity$2.onClick(FavouriteActivity.java:84)
at android.view.View.performClick(View.java)
at android.view.View$PerformClick.run(View.java)
at android.os.Handler.handleCallback(Handler.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
解决方案
db.delete(TABLE_NAME, "CAST("+KEY_ID+" AS TEXT) IN (" + new String(new char[ids.length-1]).replace("\0", "?,") + "?)", ids);
推荐阅读
- java - ResultSetMapper 实现应该是线程安全的吗?
- node.js - “Npm list”没有显示任何未满足的依赖项,那么为什么我的服务器会出错?
- django - 如何在 Django ORM 中获取密码哈希?
- gatsby - 如何将 Gatsby createResolver 与嵌套数据一起使用
- pandas - 熊猫每次选择索引> = X的第一行,然后索引> = 2X的下一行
- r - 我怎样才能让 ggtree::geom_range 工作?
- reactjs - 使用最少的输出文件将 ReactJS 应用程序添加到任何 HTML 页面
- python - python selenium 在新选项卡中打开链接并在新选项卡中继续会话
- swift - tableView:numberOfRowsInSection:无法识别的选择器发送到实例错误
- php - 如何在 PHP 中检索多维数组之间的更新、删除和添加?