SQLite删除最后一个字符串 - 应用程序崩溃

问题描述 投票:-6回答:3

有人可以帮我指出错误是什么吗?我放这个后我的应用程序崩溃了。

public String getLastString() {

String selectQuery = "SELECT  * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);

cursor.moveToLast();
LastString = cursor.getString(0);

cursor.close();
db.close();
return LastString;
}


public void deleteLastMessage() {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_NAME,null ,new String[] { getLastString() });
    db.close();
}
android sqlite
3个回答
0
投票

试试这个

public void deleteLastMessage() {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_NAME,"COLNAME = ?",new String[] { getLastString() });
    db.close();
}

0
投票

Where子句缺失

SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME,"COLLUMNNAME = '"+ getLastString()+"'",null});
db.close();

0
投票

我已经解决了这个问题,谢谢大家

// Deleting single contact
    public void deleteLastMessage(SubliminalMsg a) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_NAME, KEY_MSG + " = ?",
                new String[] { String.valueOf(a.get_message()) });
        db.close();
    }

    public String getLastString() {

    String selectQuery = "SELECT  * FROM " + TABLE_NAME;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    cursor.moveToLast();
    LastString = cursor.getString(0);

    cursor.close();
    db.close();
    return LastString;
}

在活动中

 public void delete(View v) {
    LastMessage = new SubliminalMsg(db.getLastString());
    db.deleteLastMessage(LastMessage);
    displayText();
}
© www.soinside.com 2019 - 2024. All rights reserved.