我有一個數據庫,我在其中存儲已發送消息的數量。但是,當我發送消息時,計數器不會遞增。更新聲明不更新字段
這是數據庫類(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);
然而,這不更新相應的字段。我究竟做錯了什麼?
SQLite會自動更改爲INTEGER。閱讀[this](http://www.sqlite.org/datatype3.html)它不會解決問題。 –
無論如何謝謝你的回答。 – user1301428
您可以使用虛擬值更新該字段嗎?嘗試,如果它得到更新,那麼問題在於編碼。如果不是那麼它的數據庫問題 – GoCrazy