【问题标题】:How can I verify SQLite Commands?如何验证 SQLite 命令?
【发布时间】:2012-02-06 18:27:28
【问题描述】:

我不知道如何在 Android 中验证 SQLite 命令... 当我有那个代码时:

final String CREATE_TABLE_USER =
                    "CREATE TABLE tbl_user ("
                    + "id INTEGER PRIMARY KEY AUTOINCREMENT,"
                    + "username VARCHAR(20));";
db.execSQL(CREATE_TABLE_USER);

我喜欢检查“已创建”:

if (tbl_user has been created)

我该怎么写? Eclipse 说我无法将 void 转换为布尔值...

【问题讨论】:

    标签: sqlite if-statement create-table verify


    【解决方案1】:

    如果 SQL 语句执行失败,将会抛出异常。这意味着如果db.execSQL(...) 之后的代码正常运行,则 SQL 已正确执行。简单!

    如果您担心该表可能已经存在,请考虑使用 CREATE TABLE IF NOT EXISTS tbl_user (...)


    [EDIT]:如果要检查create是否存在,需要捕获异常:

    try {
        db.execSQL(CREATE_TABLE_USER);
        doMessage("made the tbl_user table");
    } catch (SQLException exn) {
        doMessage("did not make the tbl_user table: " + exn.getMessage());
        throw exn; // Let the exception propagate as we're just reporting...
    }
    

    【讨论】:

    • 感谢您的回答;)但我仍然实施了“如果不存在”...我认为我的问题还不够清楚。我喜欢发出警告“表 tbl_user 已创建”或“表 tbl_user 由于任何原因尚未创建...”为此,我必须通过 if 进行检查..
    • @user1085392:但是if 是错误的做法。如上所示,使用try
    • 非常好 :D 谢谢。我想就是这样。只剩下一个问题:无法将 SQLException 解析为类型。痛苦……不得不导入SQLException包。问题已解决 :) 谢谢大家!
    • @user1085392:我认为它是 SQLiteException 的超类。不记得了,因为我现在已经关闭了那个窗口。 :-)
    【解决方案2】:

    如果创建表失败,会抛出异常。因此,如果创建没有引发异常,您可以非常确定该表存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多