删除Sqlite表中的行

时间:2017-02-01 04:16:29

标签: android sqlite sql-delete

我知道它被问了一百万次,但我仍然无法让它发挥作用。我正在尝试从我的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();
}

2 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

From the docs

  

table 字符串:要从

中删除的表      

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

     

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

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

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