Sqlite更新记录

时间:2017-05-08 22:07:27

标签: android sqlite

这是我第一次在android上干扰sqlite。

按照教程创建了一个SQliteHelper类,里面有这个方法:

// Updating single profile
public int updateProfile(Profile profile) {

    // 1. get reference to writable DB
    SQLiteDatabase db = this.getWritableDatabase();

    // 2. create ContentValues to add key "column"/value
    ContentValues values = new ContentValues();
    values.put("cpf", profile.getCpf()); // get cpf
    values.put("nome", profile.getNome()); // get nome
    values.put("phone", profile.getPhone()); // get nome

    // 3. updating row
    int i = db.update(TABLE_PROFILES, //table
            values, // column/value
            KEY_ID+" = ?", // selections
            new String[] { String.valueOf(profile.getId()) }); //selection args

    // 4. close
    db.close();

    return i;

}

但是,我不知道如何使用它..

我知道为了获取个人资料,我会执行以下操作:

MySQLiteHelper db = new MySQLiteHelper(view.getContext());
db.updateProfile(db.getProfile(0));

但我该如何更新呢?

1 个答案:

答案 0 :(得分:1)

该代码使用此部分中的特定id更新配置文件:

// 3. updating row
int i = db.update(TABLE_PROFILES, //table
        values, // column/value
        KEY_ID+" = ?", // selections
        new String[] { String.valueOf(profile.getId()) }); //selection args

因此,此id来自您刚刚使用该函数的Profile对象。

您应该执行以下操作:

// get a profile
MySQLiteHelper db = new MySQLiteHelper(view.getContext());
Profile p = db.getProfile(0);

// change something
p.setPhone(55598789);

// update profile p
updateProfile(p);