【问题标题】:Insert and select in Android在 Android 中插入和选择
【发布时间】:2014-02-28 10:59:37
【问题描述】:

我有一个很奇怪的问题。

经过大量调试,我得出以下代码行:

db.db.rawQuery("INSERT INTO goal_calendar(timestamp) VALUES(1)", null);
db.cursor = db.db.rawQuery("SELECT * FROM goal_calendar", null);
Log.e("SIZE", String.valueOf(db.cursor.getCount()));

结果是“大小 0”。 根本没有任何错误。一切都很好,突然间它不想在我的桌子上存储任何东西。它刚刚停止。有什么问题?

根据我的说法,这三行代码之后的结果应该总是错误(异常)或者 SIZE 应该大于 0。

【问题讨论】:

    标签: android sqlite select insert


    【解决方案1】:

    因为这个

    "INSERT INTO goal_calendar(timestamp) VALUES(1)"
    

    不是查询 (SELECT),而是COMMAND

    对于命令(INSERT、UPDATE、DELETE、...),请使用:

    db.execSQL("INSERT INTO goal_calendar (timestamp) VALUES (1)", null);
    

    我也有一些疑问,你为什么加倍“db”。
    我会使用“db.rawQuery”和“db.execSQL”,而不是“db.db.rawQuery”和“db.db.execSQL”。

    现在解释两句:
    您的 INSERT 语句不起作用。这就是您的查询正确返回零计数的原因。

    【讨论】:

    • 非常感谢。我以为 rawQuery 可以用于一切,但我错了:)
    • 当您刚接触数据库时,可能会混淆查询和命令。
    猜你喜欢
    • 2014-12-21
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2014-05-27
    • 2021-10-07
    • 2023-03-22
    • 2018-05-16
    • 2021-10-22
    相关资源
    最近更新 更多