gpt4 book ai didi

Android SQL 没有这样的表?

转载 作者:行者123 更新时间:2023-11-30 03:47:35 34 4
gpt4 key购买 nike

我是机器人开发的新手,但我正在研究一些 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/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com