android - 更新语句不更新字段

标签 android sqlite

我有一个数据库,我在其中存储已发送消息的数量。但是,当我发送消息时,计数器没有增加。

这是数据库类(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/

相关文章:

android - 如何打印由android的query()方法执行的查询

c# - C#和WP8.1将查询选择的结果插入数组

java - 如何通过java以键值对的形式在android中添加复选框?

android - 如何避免多次写入相同的 block |麻省理工学院 App Inventor

c++ - SQLite3和释放锁

haskell - SQLite3 haskell createFunction 示例

java - 在 Android 上合并两个 WAVE 文件(连接)

android - 合并两个图像并保存到 sd 卡

android - 应用程序数据文件实际存储在 android 设备上的什么位置?

java - 无法从 Sqlite 数据库中的游标窗口读取第 0 行,第 -1 列