送信されたメッセージの数を保存しているデータベースがあります。ただし、メッセージを送信しても、カウンターは増加しません。
これはデータベースクラス(usersdata)です:
import static android.provider.BaseColumns._ID;
import static com.app.Constants.TABLE_NAME;
import static com.app.Constants.PHONE_NUMBER;
import static com.app.Constants.SMS_SENT;
import static com.app.Constants.SMS_RECEIVED;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class UsersData extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "rpgsms.db";
private static final int DATABASE_VERSION = 1;
public UsersData (Context ctx) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
PHONE_NUMBER + " TEXT PRIMARY KEY, " +
SMS_SENT + " INT, " +
SMS_RECEIVED + " INT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
SMS_SENT
別のクラスでは、フィールドを更新したいのですが、次のようにしています。
usersData = new UsersData(this);
SQLiteDatabase db = usersData.getWritableDatabase();
db.rawQuery("UPDATE "+ TABLE_NAME + " SET "+ SMS_SENT + " = " + SMS_SENT + "+1", null);
ただし、これは対応するフィールドを更新しません。私は何が間違っているのですか?