2016-05-26 2 views
0

Dies kann dumme Frage sein, wenn ich den Datensatz vom Server holen müssen die alten Datensätze der Tabelle löschen und müssen die neuen Werte in dieser Tabelle einzufügen, wie ich dies tun kann! soweit habe ich was probiert!Wie die vorhandenen Datensätze in der Tabelle löschen und neuen Wert in SQLite einsetzen?

Aber es nicht die vorhandenen Datensätze löschen, wie kann ich das tun, kann mir jemand helfen!

+0

db.execSQL ("Löschen von" + TABLE_NAME); –

+1

db.delete (TABLE_NAME, null, null); –

+0

Was macht die Select-Anweisung? Sie verwenden eine WHERE-Klausel, aber was ist die Bedingung und sind Sie sicher, dass Sie Ergebnisse von dieser Abfrage erhalten? –

Antwort

0

Bitte versuchen Sie diese

public void deleteTypeDetails(){ 
     try{ 
      SQLiteDatabase db=this.getWritableDatabase(); 
      db.delete(Constants.TYPE_TABLE_NAME,"1",null); 
      db.close(); 
     }catch (Exception e){ 
      e.printStackTrace(); 
     } 

    } 
+0

Dank ganesh müssen den vorhandenen Datensatz und legen Sie neue Datensatz löschen, sobald eine Verbindung hergestellt mit Server –

+0

@MedlinMoni Ihr Problem gelöst? –

+0

nooo, was ich tun müssen, ist, wenn ich Verbindung mit dem Server machen zunächst die vorhandenen löschen müssen, und die neue einsetzen, wie Sie dieses –

0

wenn alle Datensätze der Tabelle gelöscht werden müssen und ersetzt, schlage ich auf diese Weise:

db.delete(TABLE_NAME, null, null); 

können Sie auch einen löschen bestimmten Datensatz mit diesem Code des finde diesen Datensatz mit seiner ID:

private void deleteDashboard(int id) { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     String where = "id = ?"; 
     String[] whereArgs = new String[]{id + ""}; 

     try { 
      db.delete(DashBoardModel.DashBoardTable, where, whereArgs); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Auf der anderen Seite, nach Ihrer que lierte, ich glaube, Sie sind Aufzeichnungen von Server empfangen eins nach dem anderen mit neuen Daten zu aktualisieren, die auf diese Weise könnte Ihnen helfen:

ContentValues cv = new ContentValues(); 
      cv.put("field_name", value); 

db.update(DashBoardModel.DashBoardTable, cv, 
         where, whereArgs); 

By the way, ich hoffe, Ihre Tabelle hat einen Primärschlüssel und Sie können verwenden where-Klausel zum Auffinden des exakten Datensatzes. (Auch zum Löschen oder Aktualisieren)

Schließlich empfehle ich Ihnen für Android wie Realm verfügbar neue ORM zu verwenden, von DBFlow all diese Probleme zu vermeiden. ;)

Verwandte Themen