2016-05-26 8 views
0

これは、サーバーからレコードをフェッチするときに、テーブルの古いレコードを削除する必要があり、そのテーブルに新しい値を挿入する必要があるときには、どうやって疑問に思うかもしれません。これまで私が試したことは何ですか?テーブル内の既存のレコードを削除し、sqliteに新しい値を挿入するにはどうすればいいですか?

public void DashInsertorUpdate(DashBoardModel dashobjj){ 
     String query=" SELECT * FROM " + DashBoardModel.DashBoardTable + " WHERE " + DashBoardModel.DashBoardLable +""; 
     Cursor c = db.rawQuery(query, null); 
     if (c.moveToFirst()) { 
      DeleteDashboard(dashobjj); 
     } else { 
      InsertDashBoardLeadBySource(dashobjj); 
     } 

    } 

public void DeleteDashboard(DashBoardModel modelobj){ 
     db.execSQL(" DELETE FROM " + DashBoardModel.DashBoardTable + " WHERE " + DashBoardModel.DashBoardLable + "= '" + modelobj.getLabel() + "'"); 

    } 

しかし、既存のレコードを削除しないと、これをどうすれば誰でも私を助けることができます!

+0

db.execSQL( "delete from" + TABLE_NAME); –

+1

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

+0

selectステートメントは何をしていますか? WHERE句を使用しますが、条件は何ですか?そして、あなたはそのクエリから結果を得ていますか? –

答えて

0

あなたのテーブルのすべてのレコードを削除し、交換する必要がある場合、私はこの方法をお勧めこれら

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

    } 
+0

ありがとうganeshは、既存のレコードを削除し、サーバーとの接続が確立するたびに新しいレコードを挿入する必要があります。 –

+0

@MedlinMoniあなたの問題は解決しましたか? –

+0

nooo私がする必要があるのは、サーバーとの接続を確立するたびに、既存のものを削除し、新しい方法を挿入する必要がある場合です。 –

0

を試してください:

db.delete(TABLE_NAME, null, null); 

また、あなたがどのできる。このコードを使用して、ある特定のレコードを削除することができます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(); 
     } 
    } 

一方、あなたのque stion、私はあなたが、レコードをこのようにあなたを助けることができる、サーバから受信した新しいデータで1、ずつ更新しようとしていると思う:

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

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

ところで、私はあなたのテーブルに主キーを持っている願って、あなたが使用することができます正確なレコードを見つけるためのwhere節。 (削除または更新の場合でも)

最後に、これらの問題を回避するために、RealmのようなAndroid用の新しいORMをDBFlowで使用することをお勧めします。 ;)

関連する問題