我有一个数据库,我在其中存储已发送消息的数量。但是,当我发送消息时,计数器没有增加。
这是数据库类(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);
但是,这不会更新相应的字段。我做错了什么?
最佳答案
看来其他人也遇到了同样的问题。使用函数 execSQL
而不是 rawQuery
更新字段解决了这个问题。
您可以在这里阅读:Increase the value of a record in android/sqlite database
关于android - 更新语句不更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219072/