如何用特定行更新SQQLite数据库?

时间:2018-07-27 10:34:49

标签: android android-sqlite

在数据库中更新时,我没有获得特定行的ID
这是我的数据库更新注释代码

public int updateNote(int id, String tittle, String content , String update_at)
    {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(Note.COLUMN_TITTLE,tittle);
        values.put(Note.COLUMN_CONTENT,content);
        values.put(Note.COLUMN_TITTLE,update_at);
        return db.update(Note.TABLE_NAME,values,Note.COLUMN_ID+"="+id,null);

    }

请帮助我。

3 个答案:

答案 0 :(得分:2)

update返回受影响的行数,而不是该行的ID。
如果您成功,则返回1。
关于您需要的ID,您已经拥有它。

答案 1 :(得分:0)

如mTak所述,update方法返回受影响的行数。您还可以在documentation中看到它。

如果您希望方法返回更新的行的ID,请返回传递的id,因为这是您首先选择要更新的行的方式:

public int updateNote(int id, String tittle, String content , String update_at) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(Note.COLUMN_TITTLE,tittle);
    values.put(Note.COLUMN_CONTENT,content);
    values.put(Note.COLUMN_TITTLE,update_at);
    db.update(Note.TABLE_NAME,values,Note.COLUMN_ID+"="+id,null);

    return id;
}

答案 2 :(得分:0)

在您的活动班级中:

 //*Note is your setterClass  
 //*notesList is your ArrayList or list
 //*position refers your current list position
 //*setNote is a method in Note Class

 private void updateNote(String note, int position) {
        Note n = notesList.get(position);
        // updating note text
        n.setNote(note);

        // updating note in db
        db.updateNote(n);

        // refreshing the list
        notesList.set(position, n);
        mAdapter.notifyItemChanged(position);
    }

在数据库类中,尝试以下代码:

 public int updateNote(Note note) {
        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put(Note.COLUMN_NOTE, note.getNote());

        // updating row
        return db.update(Note.TABLE_NAME, values, Note.COLUMN_ID + " = ?",
                new String[]{String.valueOf(note.getId())});
    }

在这里,我正在尝试更新单个字符串。希望对您有用。让我知道这是否有效。