【问题标题】:Database updating but not saving数据库更新但不保存
【发布时间】:2013-07-02 18:14:30
【问题描述】:

我有一个带有预制数据库的应用程序。我想更改这个数据库中的一个条目并保存它,但我遇到了一些麻烦。我有一个 DatabaseHelper,里面有以下方法:

public void updateStats(int rowId, int correct, int attempts) {
        //Method for updating the stats after a question is answered

        SQLiteDatabase db = this.getWritableDatabase();

        ContentValues args = new ContentValues();
        args.put("CORRECT", correct);
        args.put("ATTEMPTS", attempts);
        db.update("CHARACTERS", args, "_id=" + rowId, null);

        Cursor c = db.query("CHARACTERS", null, null, null, null, null, null);
        c.moveToPosition(rowId-1);
        Log.d("database", "test - " + String.valueOf(c.getInt(0)));

        db.close();

    }

似乎运行更新正常,因为查询显示日志中已进行更改。但是当我结束活动时,应用程序正在恢复到原始数据库。

我在 Android 中使用数据库的知识并不完整,所以我可能遗漏了一些简单的东西。有谁知道出了什么问题?

【问题讨论】:

  • 您可以发布您的数据库路径吗?
  • @Deen Sure: "/data/data/"+context.getPackageName()+"/"+"databases/";
  • 您是否检查了位于您的包文件夹中的数据库?
  • @Deen 是的,我很确定它在正确的位置。我一直在从 Eclipse 的模拟器中提取它,以便检查是否有任何更改。

标签: android android-sqlite


【解决方案1】:

请尝试使用这个

ContentValues dataToInsert = new ContentValues();
                            dataToInsert.put(ALBUM_IS_COMPLETE, "true");
                            String where = "album_id=?";
                            String[] whereArgs = {albumid};
                            try
                                {
                                    openDataBase();
                                    myDataBase.update(DATABASE_ALBUM_TABLE, dataToInsert, where, whereArgs);
                                }
                            catch (Exception e)
                                {
                                }

希望对你有帮助

【讨论】:

  • 我很困惑,这与我发布的代码本质上不是相同的技术吗?
  • 您是从唯一的一个位置更新您的数据库吗?
  • 您在该位置复制的数据库是否已填满?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
  • 2017-12-05
  • 1970-01-01
  • 2023-03-13
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多