mercredi 7 janvier 2015

Increment the field by one in sqlite database android

I have a database with a table which represents Shop for my game. The problem is, that when I use the method to purchase it doesn't increment the value by one but just sets it to zero. So how can I improve the method to increment the value of ItemNumberOfPurchases by one each time it's called for specific ID ? Here is my code for this.



SQLiteDatabase myDB = this.getWritableDatabase();
myDB.execSQL("UPDATE " + tTableName + " SET "
+ fItemNumberOfPurchases + " = " + fItemNumberOfPurchases + " +1 WHERE "
+ fItemNumberOfPurchases + " >" +ID);
myDB.close();


here is my code for defining the database:



public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("CREATE TABLE IF NOT EXISTS "+tTableName+" (" +
fItemID + " INTEGER PRIMARY KEY , " +
fItemName + " TEXT , " +
fItemNumberOfPurchases + " INT, " +
fItemIsLocked + " TEXT" +
")");
ContentValues cv = new ContentValues();
cv.put(fItemID, 1);
cv.put(fItemName, "Lives");
cv.put(fItemNumberOfPurchases, 0);
cv.put(fItemIsLocked, "true");
sqLiteDatabase.insert(tTableName, null, cv);
cv.put(fItemID, 2);
cv.put(fItemName, "Hardmode");
cv.put(fItemNumberOfPurchases, 0);
cv.put(fItemIsLocked, "true");
sqLiteDatabase.insert(tTableName, null, cv);
cv.put(fItemID, 3);
cv.put(fItemName, "Reversed");
cv.put(fItemNumberOfPurchases, 0);
cv.put(fItemIsLocked, "true");
sqLiteDatabase.insert(tTableName, null, cv);
cv.put(fItemID, 4);
cv.put(fItemName, "Reversed Hardmode");
cv.put(fItemNumberOfPurchases, 0);
cv.put(fItemIsLocked, "true");
sqLiteDatabase.insert(tTableName, null, cv);
}

Aucun commentaire:

Enregistrer un commentaire