更新表當試圖更新爲我記錄一個記錄我使用這個代碼錯誤的SQLite中
private void UpdateCattleRecord(UpdateCattleRecord updateRecord){
mDB.beginTransaction();
String where = "_ID=";
String[] RecordToUpdate = {Cattle._ID};
Toast.makeText(this,"Updating Animal "+ RecordToUpdate, Toast.LENGTH_LONG).show();
try {
ContentValues CattleFieldsToUpdate = new ContentValues();
CattleFieldsToUpdate.put(Cattle.CATTLE_ANIMALID,updateRecord.getCattleName());
CattleFieldsToUpdate.put(Cattle.CATTLE_TYPE, updateRecord.getCattleType());
CattleFieldsToUpdate.put(Cattle.CATTLE_LOCATION, updateRecord.getCattleLocation());
CattleFieldsToUpdate.put(Cattle.CATTLE_DOB, updateRecord.getCattleDob());
CattleFieldsToUpdate.put(Cattle.CATTLE_DAM, updateRecord.getCattleDam());
CattleFieldsToUpdate.put(Cattle.CATTLE_SEX, updateRecord.getCattleSex());
mDB.update(Cattle.CATTLE_TABLE_NAME,CattleFieldsToUpdate, where, RecordToUpdate);
mDB.setTransactionSuccessful();
} finally {
mDB.endTransaction();
}
}
我的日誌顯示
標籤數據庫SQLite的返回:錯誤代碼= 1 ,味精=近「=」:語法錯誤
研究這個之後,我覺得我在正確的地方的一切,但很明顯,我不這樣做, 當我看看NEX在登錄這是當然的 '紅',它讓我看到所有正確的數據T的錯誤,
03-27 15:15:29.291:E /數據庫(12011):錯誤更新DATE_OF_BIRTH = 3月27日, 2012 animaltype =小牛性別= F位置=東部大壩= 601 animal_id = 601A使用UPDATE牛SET SET date_of_birth = ?, animaltype =?,sex =?,location =?,dam =?,animal_id =? WHERE_ID =
我明顯遇到了_ID值的問題,但似乎無法找到它。有人能指出我的語法錯誤在哪裏嗎?
更新
發生的問題,因爲我是不合格的,我想更新的記錄(_ID)的實際值。一旦我將它作爲參數傳遞給updaterecords函數,更新就按計劃進行。
感謝您的輸入,它幫助我縮小了我做錯的地方。
Slukian,我驗證了_ID的拼寫和它在所有情況下正確大寫。它不會讓我使用除字符串之外的任何內容,但是當系統給我一個x表示語法不正確的情況時,我將如何爲值RecordtoUpdate分配一個long? – Hank 2012-03-27 20:58:50
@Hank使用'String where = Cattle._ID +「=?「;'WHERE'子句並使用'String [] RecordToUpdate = {」「+ longValue};'作爲where選擇子句,('longValue'是要更新的記錄的ID) – Luksprog 2012-03-28 05:04:05