简体   繁体   中英

updating a tuple in a sqlite table in android studio

before voting down please read my question , which I have searched a lot but I couldn't find the answer yet, so I would appreciate if you give me hand to overcome the problem. Actually I need to update a tuple in a table named "Demographics". But it seems my code does not work correctly, and in fact after running the app , I got the result "0" for updating which means nothing get updated.

12-21 12:34:54.190 2351-2367/? D/Update Result:: =0
  • I guess my problem is due to not pointing to the right row of the table based on Primary key. Actually when a user Register to my app the following things should happen:

1- Create a tuple in "Demographics" table --> username, password and email will be inserted. An auto increment primary key also constructed and inserted.

2- user logins , then he can complete rest of information in "Demographics" table. --> this MODIFICATION is the "update" process which I', asking.

Would you please tell me if the following codes are wrong or have any implicit error?

DemographicsCRUD.java

public long UpdateDemographics(Demographics_to demoId) {
    //SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(DataBaseHelper.lastName, demoId.getD_lastName());
    values.put(DataBaseHelper.firstName, demoId.getD_firstName());
    values.put(DataBaseHelper.dateOfBirth, demoId.getD_dateOfBirth())

    long result = database.update(dbHelper.Demographics_Table, values,
            WHERE_ID_EQUALS,
            new String[]{String.valueOf(demoId.getD_patientID())});

    Log.d("Update Result:", "=" + result);
   // db.close();
    return result;
}

here is where I call the above code:

private void updateDemographicsTable()
{
    ep_demoId = new Demographics_to();
    String ep_na = ep_name.getText().toString();
    String ep_fa = ep_family.getText().toString();
    .
    . 
    .
    ep_demoId.setD_dateOfBirth(ep_bd);
    ep_demoId.setD_firstName(ep_na);
    ep_demoId.setD_lastName(ep_fa);
}

    @Override
    protected Long doInBackground(Void... arg0) {
        long result = ep_demoCRUD.UpdateDemographics(ep_demoId);
        return result;
    }

    @Override
    protected void onPostExecute(Long result) {
        if (activityWeakRef.get() != null
                && !activityWeakRef.get().isFinishing()) {
            if (result != -1)
                Toast.makeText(activityWeakRef.get(), "Information Updated!",
                        Toast.LENGTH_LONG).show();
        }}

看起来像您要传递的内容一样,因为PatientID在数据库中没有匹配的记录,或者数据对象“ Demographics_to”的患者ID设置不正确。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM