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

Android 如何使用特定行更新SQQLite数据库?,android,android-sqlite,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

在数据库中更新时,我没有获得特定行的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);

    }

请帮助我。

update
返回受影响的行数,而不是行的id
在您的情况下,如果成功,它将返回1

关于您需要的id,您已经拥有了它。

update
返回受影响的行数,而不是行的id
在您的情况下,如果成功,它将返回1

关于您需要的id,您已经拥有了它。

正如mTak概述的那样,
update
方法返回受影响的行数。您也可以在中看到这一点

如果希望方法返回更新的行的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;
}

如mTak所述,
update
方法返回受影响的行数。您也可以在中看到这一点

如果希望方法返回更新的行的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;
}

在活动课上:

 //*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())});
    }

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

在您的活动类中:

 //*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())});
    }

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

如果您在日志中为该方法提供rowcheck ID的ID,以确认您是否为每个数据加载项使用任何列表视图和getter setter,则该方法将有效db@RevathiManoharan是的,我在列表视图中使用getter和setter…@MustafaShaikh let请检查我的答案。我希望它对您有用。如果您在日志中为该方法提供rowcheck ID的ID,以确认您是否为每个数据加载项使用任何列表视图和getter setter,那么它将起作用db@RevathiManoharan是的,我正在列表视图中使用getter和setter…@MustafaShaikh让您检查我的答案。我希望它对您有用,它不会在中更新数据库兄弟,我试过了,我用的是getter和setter。在更新它在列表视图中的显示时,但在重新打开应用程序后,它从列表视图中消失了…它没有在数据库中更新,兄弟,我尝试了它,我使用getter和setter。在更新其在列表视图中的显示时,但在重新打开应用程序后,它从列表视图中消失。。。