안드로이드에서 sqlite 데이터베이스의 전체 행을 업데이트하려고합니다. 그러나 어떤 이유로 예외가 발생합니다. 내 데이터베이스를 업데이트SQL을 업데이트하면 예외가 발생합니다.
방법은 다음과 같습니다
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;
}
및 업데이트 메소드를 호출하는 방법입니다 :
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());
}
}
public void updateEvent(long rowId,Evento evento){
int row=(int)rowId;
ContentValues eventValues=createContentValues(evento);
db.update(TABLE,eventValues,KEY_ROWID+"="+row,null);
}
createContentValues 방법이있다 Exception 객체에는 정보가 없기 때문에 로그 엔트리 행이 주석 처리됩니다. printStackTrace()
println이 NullPointerException을 throw하기 때문입니다.
UPDATE : 로그 캣 : KEY_ROWID 가정
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
안드로이드에서는'println'이 작동하지 않습니다. 당신은 logcat – slayton
에서 전체 stracktrace를 얻을 수 있습니다 어떤 오류가 발생하지 않습니다, 그래서 내가 코드와 함께 잘못 모르겠지만 - 내 테이블이 업데이 트되지 않습니다 때 토스트 메시지를 보여주는 예외를 잡으려고 업데이 트하려고 . – rafuru