我已经创建了一个方法来更新我的android应用程序中的数据库条目。
public int updateEntryById(ContentValues diaryValues) {
String updateWhere = Diary.DiaryItem.COLUMN_NAME_ID + " = " + Diary.DiaryItem.COLUMN_NAME_ID;
Log.i(TAG, "UpdateWhere query values" + updateWhere);
SQLiteDatabase db = diaryDbHelper.getWritableDatabase();
ContentValues updateValues = new ContentValues();
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_TITLE, "");
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_DATE, "");
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_TIME, "");
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_ENTRY, "");
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_LAT, "");
updateValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_LONG, "");
Log.i(TAG, "UPDATE" + updateWhere);
//performs the update
int count = db.update(
Diary.DiaryItem.TABLE_NAME,
updateValues,
updateWhere,
null);
return count;
}我发现的一个问题是Log.i(标记,"UpdateWhere query values“+ updateWhere);实际上并没有给出ID,而是_ID = _ID,这是列名。相反,我希望它是在_ID =1的位置。
有什么想法吗?提前感谢
protected void saveDiaryItem() {
ContentValues saveValues = new ContentValues();
saveValues.put(Diary.DiaryItem.COLUMN_NAME_ID, mID.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_TITLE, mTitle.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_DATE, mDate.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_TIME, mTime.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_ENTRY, mEntry.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_LAT, mLat.getText().toString());
saveValues.put(Diary.DiaryItem.COLUMN_NAME_DIARY_LONG, mLong.getText().toString());
Log.i(TAG, "About to insert data" + saveValues);
DAO diarySave = new DAO(getBaseContext());
diarySave.updateEntryById(saveValues);
Log.i(TAG, "IM BACK!");
}发布于 2014-03-14 23:14:39
您的函数名为updateEntryById,但您没有传递任何ID。您知道要更新哪个id吗?
目前你有这一行
String updateWhere = Diary.DiaryItem.COLUMN_NAME_ID + " = " + Diary.DiaryItem.COLUMN_NAME_ID;它把Diary.DiaryItem.COLUMN_NAME_ID;放在'=‘符号的两边,所以你不能期望得到一个合适的id值。
你不应该把这个id作为你的函数的参数吗?
public int updateEntryById(ContentValues diaryValues, int id) 似乎你也不使用arg ContentValues diaryValues,它正常吗?
https://stackoverflow.com/questions/22408416
复制相似问题