我想在android上更新我的sqlite數據庫上的整個行。但由於某種原因拋出異常。更新SQL拋出異常
,更新我的數據庫中的方法是:
public void updateEvent(long rowId,Evento evento){
int row=(int)rowId;
ContentValues eventValues=createContentValues(evento);
db.update(TABLE,eventValues,KEY_ROWID+"="+row,null);
}
的createContentValues方法是這樣的:
private ContentValues createContentValues(Evento evento){
ContentValues val=new ContentValues();
val.put(KEY_ROWID,evento.getIdEvento());
val.put(KEY_SUMMARY,evento.getSummario());
val.put(KEY_DAY,evento.getFecha().getDia());
val.put(KEY_MONTH,evento.getFecha().getMes());
val.put(KEY_YEAR,evento.getFecha().getAnho());
val.put(KEY_STATUS,evento.getStatus());
val.put(KEY_NOTES, evento.getNota());
return val;
}
,並調用Update方法的方法是:
private void acceptAction(Evento evnt,String note){
DbAdapter dbConn=new DbAdapter(this.getApplicationContext());
evnt.setNota(note);
try{
dbConn.updateEvent(evnt.getIdEvento(), evnt);
}catch(Exception e){
Toast.makeText(this.getApplicationContext(), "Error al Actualizar tu Evento", Toast.LENGTH_SHORT).show();
//Log.e("Error Candelaria", e.getMessage());
}
}
的日誌條目行被評論,因爲該異常對象不包含任何信息,我不能做一個printStackTrace()
,因爲println引發NullPointerException。
UPDATE: logcat的:
04-19 13:53:15.910: E/AndroidRuntime(4934): java.lang.NullPointerException
04-19 13:53:15.910: E/AndroidRuntime(4934): at com.siitne.candelaria.data.DbAdapter.updateEvent(DbAdapter.java:48)
04-19 13:53:15.910: E/AndroidRuntime(4934): at com.siitne.candelaria.ImportantList.acceptAction(ImportantList.java:130)
04-19 13:53:15.910: E/AndroidRuntime(4934): at com.siitne.candelaria.ImportantList.access$3(ImportantList.java:126)
04-19 13:53:15.910: E/AndroidRuntime(4934): at com.siitne.candelaria.ImportantList$1$1.onClick(ImportantList.java:113)
什麼是錯誤你正在獲得logcat? – dymmeh 2012-04-19 19:48:57
'println'在android中不起作用。您可以從logcat – slayton 2012-04-19 19:49:04
得到完整的跟蹤信息,但不會收到任何錯誤,所以我不知道代碼出了什麼問題 - 但是我的表未更新,嘗試更新時捕獲顯示Toast消息的異常。 – rafuru 2012-04-19 19:50:20