2017-08-14 9 views
-2

Ich verwende diesen Code, um die Werte zu aktualisierenAndroid Sqlite-Datenbank aktualisiert die Daten nicht?

dieser Code funktioniert einwandfrei, ohne einen Fehler gibt es keinen Fehler in der Abfrage, aber wenn ich Daten nach der Aktualisierung zeigen zeigt die alten Daten ??

Dies ist der Code, den ich für die Aktualisierung der Daten in SQLite verwende.

@Override 
    public void onClick(View v) { 
     if (v == Update) { 
      try { 
       ContentValues CV = new ContentValues(); 
       CV.put("cname", EditName.getText().toString()); 
       CV.put("mobileno", EditMobile.getText().toString()); 
       CV.put("phone", EditLandline.getText().toString()); 
       CV.put("address", EditAddress.getText().toString()); 
       CV.put("email", EditEmail.getText().toString()); 
       CV.put("picture", Editbytes); 
       DB.update("contacts", CV, "cname=" + V,null); 

       Intent I = new Intent(ctx, ContactList.class); 
       ctx.startActivity(I); 


       // DB.execSQL("insert into contacts values('" + Name.getText() + "','" + Mobile.getText() + "','" + Phone.getText() + "','" + Add.getText() + "','" + Email.getText() + "')"); 
       Toast.makeText(ctx, "Contact Updated...",Toast.LENGTH_LONG).show(); 

      } catch (Exception e) { 
       Toast.makeText(ctx, "Fail to Update Contact.." + e, Toast.LENGTH_LONG).show(); 

      } 

     } else if (v == Delete) { 

     } 
    } 
+0

Aktualisieren Sie Ihre Datenbank-Version möglicherweise das Problem lösen – Darush

+0

Bitte fügen Sie weitere Informationen wie SQLite-Version, DB-Konfiguration, etc. – dpr

+0

Bitte fügen Sie die vollständige Liste der Dateien und Liste der Abhängigkeiten. Wenn "DB" -Klasse auch Ihnen gehört, fügen Sie auch seine Liste hinzu. –

Antwort

0

Können Sie bitte versuchen Sie es ausführen können,

DB.update("contacts", CV, "cname=" + V,null); 

Was ist das V, ist dieser bestimmte Name, ich Think, können Sie versuchen, Ud zu verwenden, die effektiver ist.

Wechsel zu

SQLiteDatabase db = dbHelper.getWritableDatabase(); 
db.update("contacts", CV, "cid=" + "=" + id, null); 
db.close(); // Closing database connection 

Wenn Sie jedoch nicht aktualisiert, bitte Ihr Projekt reinigen und neu zu erstellen, das könnte work.If dies nicht helfen, Sie bitte posten logcat.

+0

V ist eine Zeichenfolge, und ich habe versuchte es auch mit id, aber das funktioniert auch nicht –

0

Gibt es eine Chance WHERE-Klausel stimmt nicht mit Zeilen überein?

Sie können Ihren Zustand auf der Konsole testen mit:

Log.i(db.execSQL("SELECT * FROM contacts WHERE cname=" + V));

Aber ich denke, der beste Weg, dies zu testen, eine direkte Verbindung zur Datenbank ist:

  • Öffnen Sie ein Terminal auf Android Studio (Ansicht> Werkzeugfenster> Terminal)
  • Geben Sie adb shell ein (wenn der Befehl fehlschlägt, fügen Sie Ihre adb Installation in die PATH Variable ein)
  • Die Datenbankdatei ist in der Regel in /data/data/com.your.package/database/
  • Run sqlite3 /data/data/com.your.package/database/YourAPP.db gespeichert, um eine Eingabeaufforderung zu öffnen, in dem Sie alle SQL-Befehle
diese

Another good answer

Verwandte Themen