【问题标题】:Deleting row in Sqlite table删除 Sqlite 表中的行
【发布时间】:2017-02-01 04:16:29
【问题描述】:

我知道它已经被问了一百万次,但我仍然无法让它工作。我正在尝试从我的 sqlite 数据库中删除一行,但我不断收到错误消息。我确定这与我的语法有关,但我无法获得正确的语法。

这是我的删除方法

public void deleteRouteNote(int notePosition){
    SQLiteDatabase db = getWritableDatabase();

    db.delete(TABLE_ROUTE_NOTE, COLUMN_NOTE + COLUMN_ROUTE_NOTE_POSITION + "where" + COLUMN_ROUTE_NOTE_POSITION + "=" + notePosition, null);

    db.close();

我遇到的错误

android.database.sqlite.SQLiteException: no such column: routeNotewhererouteNotePosition (code 1): , while compiling: DELETE FROM route_note WHERE routeNotewhererouteNotePosition=9

感谢您的帮助!!

编辑:

这是我插入数据的方式

  /////Add route note row to table
public void addRouteNote(RouteNote routeNote){
    ContentValues values = new ContentValues();
    values.put(COLUMN_NOTE, routeNote.get_routeNote());
    values.put(COLUMN_ROUTE_NOTE_POSITION, routeNote.get_routeNotePosition());
    SQLiteDatabase db = getWritableDatabase();
    db.insertWithOnConflict(TABLE_ROUTE_NOTE , null, values, SQLiteDatabase.CONFLICT_REPLACE);
    db.close();
}

【问题讨论】:

  • 请检查您是否有列routeNotewhererouteNotePosition 存在且sql 是否正确。请在此处发布 sql。
  • 我编辑了我的原始帖子,以展示我如何插入效果很好。

标签: android sqlite sql-delete


【解决方案1】:

试试这个

db.delete(TABLE_ROUTE_NOTE, COLUMN_ROUTE_NOTE_POSITION + " = " + notePosition, null)

【讨论】:

  • 我试过这个,但它给了我奇怪的结果。就好像它正在从位置列中删除值,而不是从注释列中。这导致整个表不同步
  • 根据您的问题,您说要删除 column where noteposition 。现在我不确定您为什么要使用注释列。你能详细说明一下笔记栏和笔记位置之间的区别吗?
  • 也许我措辞不好。注释列中有文本,注释位置中有一个 int。所以说它是这样的: (string of text, 9 ) 那将是一行。我想删除它们。当我按照你建议的方式尝试它时,它会删除 9 而不是文本字符串。
  • 所以我让它工作这是正确的答案。事实证明,这是我在添加表格后使用表格的方式,而不是我删除行的方式。谢谢
【解决方案2】:

From the docs,

table String:要删除的表

whereClause 字符串:删除时应用的可选 WHERE 子句。传递 null 将删除所有行。

whereArgs 字符串:您可以在 where 子句中包含 ?s,它将被 whereArgs 中的值替换。值将是 绑定为字符串。

所以根据这个你的删除子句可能是这样的,

db.delete(TABLE_ROUTE_NOTE,COLUMN_ROUTE_NOTE_POSITION + "=? ,new String[]{notePosition});

【讨论】:

  • 我试过了,但我得到了一个错误,因为 notePosition 是一个 int 而不是一个字符串
  • @zsh5032 将int 包裹在String.valueOf()
猜你喜欢
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2012-05-19
相关资源
最近更新 更多