ok ... 나는이 일에 상당히 매달렸다. sackoverflow에서 많이 검색했으나 문제를 해결할 수는 없었습니다. 문제는 : DB의 단일 열을 업데이트하려고하는데 항상 오류가 발생하고 작동하지 않으며 문제가 무엇인지 거의 알지 못합니다.안드로이드 DB 업데이트 레지스터
SQLiteDatabase.update()를 사용하려고했지만 작동하지 않고 execSQL (문자열)과 함께 사용하려고했습니다. 같은 오류.
누군가에게 어떤 문제가 있는지 아이디어가있는 경우 제 코드를 표시하고 제발 ... 제발 도와주세요. 그냥 작동하지 않습니다 ... 제발 아무것도
public void AbreouCriaBD(){
try{
String nomeBanco = "Usuarios";
dataBase = openOrCreateDatabase(nomeBanco, MODE_WORLD_WRITEABLE, null);
String sql = "CREATE TABLE IF NOT EXISTS usuario" +
"(id INTEGER PRIMARY KEY, login TEXT, senha TEXT, saldoBanco float, saldoCredito float, saldoFuturos float)";
dataBase.execSQL(sql);
}catch(Exception erro){
Alerta("Erro BD","BD Não criado");
}
}
public void UpdateBDPrincipal(double saldo){
String saldoString = String.valueOf(saldo);
try{dataBase.execSQL("UPDATE usuario SET 'saldoBanco'="+ saldoString +"WHERE 'login'= cristiano");}
catch(Exception error){
Alerta("Erro","Erro no UPDATE");
}
}
public void Alerta(String title,String message){
AlertDialog.Builder Sucesso = new AlertDialog.Builder(TelaSaldoCredito.this);
Sucesso.setTitle(title);
Sucesso.setMessage(message);
Sucesso.setNeutralButton("ok", null);
Sucesso.show();
...
08-16 15:36:24.729: W/System.err(10855): java.lang.NullPointerException
08-16 15:36:24.739: W/System.err(10855): at com.bunchoffat.financejournal.TelaSaldoCredito.UpdateBDPrincipal(TelaSaldoCredito.java:121)
08-16 15:36:24.739: W/System.err(10855): at com.bunchoffat.financejournal.TelaSaldoCredito$1.onClick(TelaSaldoCredito.java:62)
08-16 15:36:24.739: W/System.err(10855): at android.view.View.performClick(View.java:2579)
08-16 15:36:24.739: W/System.err(10855): at android.view.View$PerformClick.run(View.java:9246)
08-16 15:36:24.739: W/System.err(10855): at android.os.Handler.handleCallback(Handler.java:587)
08-16 15:36:24.739: W/System.err(10855): at android.os.Handler.dispatchMessage(Handler.java:92)
08-16 15:36:24.739: W/System.err(10855): at android.os.Looper.loop(Looper.java:130)
08-16 15:36:24.739: W/System.err(10855): at android.app.ActivityThread.main(ActivityThread.java:3735)
08-16 15:36:24.739: W/System.err(10855): at java.lang.reflect.Method.invokeNative(Native Method)
08-16 15:36:24.739: W/System.err(10855): at java.lang.reflect.Method.invoke(Method.java:507)
08-16 15:36:24.759: W/System.err(10855): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
08-16 15:36:24.759: W/System.err(10855): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662)
08-16 15:36:24.759: W/System.err(10855): at dalvik.system.NativeStart.main(Native Method)
나는 오류가 NullPointerException이있다 볼 수 있습니다 ...하지만 ... 내가 왜 모르는있다. .. dataBase에 대한 데이터가 있습니다. 나는 그 시스템에 로그인 할 수 있고 데이터베이스에 암호가 있기 때문에 확신합니다. 그래서 .. 여기에 무엇을 놓치고 있습니까?
이 db처럼 시도해보십시오.update (String table, ContentValues values, String whereClause, String [] whereArgs) – Aravin
이것 역시 시도해 보았지만 작동하지 않습니다. 이 사람은 까다 롭습니다. ContentValues에서 키 이름을 열 이름과 동일하게 설정해야합니다. 맞습니까? 그리고 whereClause에서 그냥 "login '= cristiano"맞습니까? 그것을 했어, 그리고 같은 오류 ... –
우리는 또한 더 많은 정보가 필요할 수 있습니다. Android 공급자 패턴 (예 :'ContentProvider'에서 확장)을 사용합니까? 또한 SQLite를 추상화하여 업데이트 및 업그레이드를보다 쉽게 해주는'SQLiteOpenHelper'를 사용하고 있습니까? – Tseng