的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'位什么也没有返回,所以什么都不更新 –