Ich versuche eine Score-Datenbank zu erstellen, die die Punktzahl der Spieler um eins erhöht, wenn sie gewinnen, indem sie updateScore() aufrufen. Der Primärschlüssel und die Spielernummer sind identisch (ich muss vielleicht die Datenbank irgendwann neu strukturieren) und die letzte Spalte ist "Score".Android SQLite inkrementiert einen Spaltenwert
Unten ist der Code, der anfänglich die Partitur setzt (das funktioniert), die Methode, die die Partitur erhält (funktioniert auch gut) und die Methode, die die Partitur aktualisiert, erhöhen die relevanten Spieler Punkte um 1. Dies ist der Teil der geht nicht, soll ich hier etwas anders machen? Vielen Dank.
/** Add a record to the database of two player scores
* @param playerId
* @param playerScore
**/
public void addScore (int playerId, int playerScore) {
SQLiteDatabase database = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ID, playerId);
values.put(PLAYERNUM, playerId);
values.put(SCORE, playerScore);
database.insert(TABLE_2PSCORES, null, values);
database.close();
}
// Get the score
public int getScore (int playerId) {
SQLiteDatabase database = this.getReadableDatabase();
Cursor cursor = database.query(TABLE_2PSCORES, COLUMNS, " player = ?", new String[] {String.valueOf(playerId) }, null, null, null, null); //null = groupby, having, orderby, limit
if (cursor !=null) { cursor.moveToFirst(); }
int output = cursor.getInt(2);
return output;
}
// Increment score by 1
public void updateScore (int playerId) {
SQLiteDatabase database = this.getWritableDatabase();
int playerScore = getScore(playerId);
int playerScoreInc = playerScore ++;
ContentValues values = new ContentValues();
values.put("score", playerScoreInc);
database.update(TABLE_2PSCORES, values, PLAYERNUM+" = ?", new String[] {String.valueOf(playerId)});
database.close();
}
Verwandte Frage: http://stackoverflow.com/questions/9798473/sqlite-in-android-how-to-update-a-specific-row – reinierpost
Schauen Sie sich diese Frage an. http://stackoverflow.com/questions/744289/sqlite-increase-value-by-a-certain-number –
schließen Cursors nach dem Gebrauch, besser Programmierpraxis – Jaydev