Android SQL 没有这样的表?

标签 android sqlite

我是机器人开发的新手,但我正在研究一些 SQL。我有一个扩展 SQLOpenDatabaseHelper 的类,在 onCreate() 方法中我执行了这个:

        public static final String CREATE_DB = "CREATE TABLE " + TABLE_VOCAB_INFO
        + "(" + COLUMN_NAME + " TEXT NOT NULL PRIMARY KEY," + COLUMN_URL
        + " TEXT NOT NULL," + COLUMN_DOWNLOADED + "TEXT NOT NULL);";

但是,当我尝试像这样向数据库添加内容时:

        //Adding method 
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_NAME, "item " + i);
        cv.put(COLUMN_URL, "random url");
        cv.put(COLUMN_DOWNLOADED, "true");
        open();
        database.insert(TABLE_VOCAB_INFO, null, cv);

我得到错误:

      (1) no such table: vocab_info

我该如何解决?

编辑:更多信息。

我在助手的 onCreate() 方法中创建数据库,如下所示:

      public void onCreate(SQLiteDatabase db) {
        try {
            db.execSQL(CREATE_DB);
        } catch (SQLiteException e) {
            System.out.println("Error with creation");
        }
    }

我使用这样的添加方法访问数据库

          public void onClick(View viewSelected) {
    switch (viewSelected.getId()) {
    case R.id.bDownload:
        DatabaseManipulator dm = new DatabaseManipulator(this);
        dm.open();
        dm.addList(null);
        dm.addList(null);
        dm.addList(null);
        dm.addList(null);
        dm.addList(null);
        for (VocabList list : dm.getAllLists()) {
            System.out.println(list.getName());
        }
        dm.close();
        break;

提前致谢

最佳答案

1) 尝试下面的创建表语句。

 public static final String CREATE_DB = "CREATE TABLE " + TABLE_VOCAB_INFO
        + "(" + COLUMN_NAME + " TEXT NOT NULL PRIMARY KEY," + COLUMN_URL
        + " TEXT NOT NULL," + COLUMN_DOWNLOADED + " TEXT NOT NULL);";

2) 如果您对表结构 进行任何更改或添加新表,您需要卸载并重新安装您的应用程序,如onCreate 如果没有创建数据库,则调用一次,如果数据库已经存在,则不会调用 onCreate 并且您的更改不会影响数据库。

为 OP 工作 >> 您也可以通过更改数据库版本来完成此操作。

关于Android SQL 没有这样的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14716632/

相关文章:

java - 插入后无法从 SQLite 中找到列

android - Activity 关闭后服务停止工作, Activity 停止时调试器停止

java - 为什么此代码会错误地报告我的 Android 设备上的可用空间?

python - SQLalchemy核心,从元组而不是字典插入多行

java - 自定义 ScrollView 在引用 xml 文件行时因错误膨胀类而崩溃

java - 有可能当 inputStream.available != 0 时还没有收到完整的数据?

ruby-on-rails - 为什么我不能安装 SQLite gem?

android - SQLite 在 Android 和 iOS 上的性能差异

安卓导出数据到csv

android - 如何更新 Android 应用程序用作数据源的数据库