在android中编辑数据库的内容

时间:2012-09-25 14:27:19

标签: android sql sqlite android-layout android-intent

我的应用程序中有一个编辑选项卡,用户可以在注册时编辑他的详细信息。在编辑活动中,我有一个保存按钮,点击它时会保存 数据或将数据更新到数据库中。

代码

public void onSave(View btn)
{
    EditText edtName = (EditText) findViewById(R.id.edtNameED);
    EditText edtPass = (EditText) findViewById(R.id.edtPassED);
    EditText edtEmail = (EditText) findViewById(R.id.edtEmailED);
    EditText edtPh = (EditText) findViewById(R.id.edtPhED);
    int id=0;
    String where = DataBase_Server.C_ID+"=?";
    String[] whereArgs = {id+""};
    DataBase_Server database=new DataBase_Server(Edit.this);
    SQLiteDatabase db=database.getWritableDatabase();
    ContentValues values=new ContentValues();
    values.put(DataBase_Server.MOBILE_NO, edtPh.getText().toString());
    values.put(DataBase_Server.PASS, edtPass.getText().toString());
    values.put(DataBase_Server.EMAIL, edtEmail.getText().toString());
    for(int i=0;i<edtName.length();i++)
    {
        id+=(int)edtName.getText().toString().charAt(i);
    }
    Toast.makeText(this,id+"  hello", Toast.LENGTH_LONG).show();
    try
    {
        db.update(DataBase_Server.TABLE, values,where,whereArgs);
    }catch(Exception e){}
    Toast.makeText(this,"UPDATE SUCESSFULL !!", Toast.LENGTH_LONG).show();
    db.close();
    database.close();
}

代码没有给出任何错误,但它甚至没有更新数据库中的任何内容。即使用户编辑了他的详细信息,数据库也不会发生任何变化。

1 个答案:

答案 0 :(得分:0)

您正在添加名称中所有字符的值:

for(int i=0;i<edtName.length();i++)
    id+=(int)edtName.getText().toString().charAt(i);

这不太可能是您的真实身份证价值。没有匹配WHERE条件的记录,更新将无所事事。

必须记住加载数据时的ID值,因为名称可能已更改。