2013-09-04 19 views
5

Chcę zaktualizować kolumnę col_Item_Auto_ID z +1 w każdej kolumniePrzyrost w Android SQLite

Jak to replace 10 z 11, 11 z 12, itp !! pomóc mi pls ... tutaj kod jest

public void updateMiddleTemp(int autoid) { 

     SQLiteDatabase db = this.getWritableDatabase(); 
     int id=51; 


     ContentValues cv_temp1 = new ContentValues(); 
     cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+1); 
     //ff 

     long stemp = db.updateWithOnConflict(Table_KOT_ITEMS_TEMP, cv_temp1, 
       col_Item_Auto_ID + " >= " + autoid, null,SQLiteDatabase.CONFLICT_IGNORE); 
    db.close(); 
    } 
+0

Jakie problemy można napotkać? Czy otrzymujesz komunikat o błędzie? –

+0

wartość nie jest aktualizowana. –

Odpowiedz

11

Spróbuj tego kodu, to działa dobrze :

db.execSQL("UPDATE " + Table_KOT_ITEMS_TEMP + " SET " 
        + col_Sl_No + " = " + col_Sl_No + " +1 WHERE " 
        + col_Sl_No + " >" +into); 
db.close(); 
5

Nie można tego zrobić ze standardową metodą update - trzeba użyć execSql metody Zamiast:

String sql = "UPDATE " + Table_KOT_ITEMS_TEMP + 
      " SET " + col_Item_Auto_ID + "=" + col_ITEM_AUTO_ID + "+1" + 
      " WHERE " + col_ItemAutoID + " >= " + autoid; 

db.execSql(sql); 
+0

czy możesz mi coś odesłać? –

+0

Hmm .... Dokumentacja dla execSql mówi całkiem wyraźnie, aby nie używać go do aktualizacji - czy jesteś pewien, że to jedyny sposób na zrobienie tego? – andygeers

+0

@andygeers Wiem, że tak, ale w tym samym czasie android nie dostarcza żadnych innych metod aktualizowania wierszy z użyciem wartości z wierszy, dlatego tak, to jest jedyny sposób. –

0

Można to zrobić za pomocą updateWithOnConflict().

Wartość podana w polu wartości w ContentValues jest niepoprawna. Wynikowa wartość powinna wynosić "col_Item_Auto_ID + 1", a nie "col_Item_Auto_ID1". Więc spróbuj zmienić

cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+1); 

do

cv_temp1.put(col_Item_Auto_ID, col_Item_Auto_ID+"+1"); 
+1

To nie działa – Galya

+0

nie działa dla mnie albo –

0

Ten kod pracował dla mnie:

String query = "UPDATE " + Constants.RecentChats.DB_RECENT_CHATS + " SET " 
         + Constants.RecentChats.UNREAD_COUNT + " = " 
         + Constants.RecentChats.UNREAD_COUNT +"+1"+ " WHERE " 
         + Constants.RecentChats.JID + " =" + id; 

db.execSQL(query);