如何在SQLite数据库中更改值?

时间:2015-09-13 11:32:58

标签: php android mysql sqlite

我正在学习android并建立一个相当大的项目。 我的目标是让用户在 MainActivity 中更改其电子邮件地址 onClick ,但我无法弄清楚如何更改数据库中的值。

我知道这应该是一回事:

db.update(TABLE_NAME, cv, where, value);

问题是数据库是在SQLiteHandler类中定义的,但我无法弄清楚如何使用相同的" db "在" 更新"码。我一直在无法解析方法'更新(java.lang.String,android.content.ContentValues,java.lang.String,java.lang.String [])' on db.update

我试过复制

 SQLiteDatabase db = this.getWritableDatabase(); 

到我的 MainActivity ,但此时我已经迷路了。

我关注注册系统this tutorial

到目前为止我的代码:

private static final String TABLE_NAME = "email";

btnChangemail.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            db = new SQLiteHandler(getApplicationContext());
            HashMap<String, String> user = db.getUserDetails();


            String email1 = user.get("email");

            String s1 = etChangemeil.getText().toString();


            ContentValues cv = new ContentValues();
            cv.put(user.get("email"), s1);

            String where = (user.get("email")) ;
            String[] value = { email1 }; 


            db.update(TABLE_NAME, cv, where, value);
        }
    });

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

来自文档:

更新数据库中行的便捷方法。

mul

参数

table =要更新的表 values =从列名到新列值的映射。 null是将转换为NULL的有效值

whereClause =更新时要应用的可选WHERE子句。传递null将更新所有行。

whereArgs =你可以在where子句中包含?s,它将被whereArgs中的值替换。这些值将绑定为字符串。

您可以调用此方法并更新表中的行

long

你说你得到的getWriteableDatabase()无法解析,试试这样。

创建一个扩展SQLiteOpenHolper的类,并创建更新删除和插入的方法,以便您的Db操作足够灵活,您可以从任何地方调用它们,请参阅下面的链接 Link