的sqlite表中的元組請閱讀我的問題,我已經搜索了很多,但是我還找不到答案,所以如果你給我一隻手來解決問題,我將不勝感激。 。 其實我需要在名爲「Demographics」的表中更新一個元組。但看起來我的代碼無法正常工作,事實上在運行應用程序之後,我得到了更新的結果「0」,這意味着沒有更新。在投票之前更新android studio
12-21 12:34:54.190 2351-2367/? D/Update Result:: =0
- 我想我的問題是由於基於主鍵不指向表中的右排。其實當用戶註冊我的應用程序應該發生以下事情:
1-在「人口統計」表中創建一個元組 - >用戶名,密碼和電子郵件將被插入。一個自動增量主鍵也被構造和插入。
2-用戶登錄,然後他可以填寫「人口統計」表中的其餘信息。 - >這個MODIFICATION是我要求的「更新」過程。
如果下列代碼錯誤或有任何隱含錯誤,請您告訴我嗎?
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;
}
這裏就是我所說的上面的代碼:
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();
}}
真的不清楚你在問什麼 – Kuffs
@kuffs ok讓我編輯我的問題。 – Jasmine
表中是否有數據?您必須先進行插入,然後才能更新。否則'where ID = x'位什麼也沒有返回,所以什麼都不更新 –