Android SQLiteException:没有这样的表

Android SQLiteException:没有这样的表,android,database,sqlite,Android,Database,Sqlite,我正在使用我自己的SQLite3数据库,而不是每次我的应用程序运行时都创建一个新的数据库,因为我有几个表,其中包含我试图显示的静态数据。我创建了我的数据库并将其放在我的资产文件夹中。然后我创建了我的数据库助手,当我启动我的应用程序时,我可以毫无问题地打开我的数据库,但当我尝试使用以下代码打开我的第一个表时 private Cursor getData() { try { myDbHelper = new DatabaseHelper(this);

我正在使用我自己的SQLite3数据库,而不是每次我的应用程序运行时都创建一个新的数据库,因为我有几个表,其中包含我试图显示的静态数据。我创建了我的数据库并将其放在我的资产文件夹中。然后我创建了我的数据库助手,当我启动我的应用程序时,我可以毫无问题地打开我的数据库,但当我尝试使用以下代码打开我的第一个表时

private Cursor getData() 
{
    try
    {
        myDbHelper = new DatabaseHelper(this);
        SQLiteDatabase db = myDbHelper.getReadableDatabase();
        Cursor cursor = db.query("exhibitor", FROM, null, null, null,null, ORDER_BY);
        startManagingCursor(cursor);
        return cursor;
    }
    catch(SQLiteException e)
    {
        String err = e.toString();
        return null;
    }
}

它会抛出一个错误,即:编译时没有这样的表:参展商:,编译时:选择参展商id,参展商订单中的参展商但当我检查数据库参展商是否存在时。


我缺少什么?

您是否已将数据库从assets文件夹移动到emulator上的
/data/data/YOUR_PACKAGE/databases/

关于将数据库移动到
/data/data/YOUR_PACKAGE/databases/
(如果不存在)


是另一个简短而简单的解决方案。

使用
SQLiteOpenHelper.onCreate()
不会在每次应用程序启动时创建新数据库,而是在数据库不存在时创建数据库


听起来你可能有一个由你的助手创建的空数据库(如果根本没有数据库,我可能会期待一个不同的例外),还有你在Android之外创建的单独数据库。看起来您和您的应用程序没有在同一位置查找数据。

设置->应用程序->管理应用程序->(单击您的应用程序)->清除数据

无论何时在现有数据库中创建新表,该表都不会创建,因为数据库处理程序的OnCreate函数不会每次调用,而是仅在需要时调用(如数据库未启动)。如果情况并非如此,则新创建的表实际上尚未创建。清除数据以强制数据库自身实例化。

向我发送一次 更改您的数据库版本

如果数据库_VERSION=1,它将只看到三个表 如果您的数据库_VERSION=2,它将看到更多的表,但我真的不知道有多少


祝您好运

清除数据并从设备中卸载应用程序,然后在设备中重新安装应用程序

Settings -> Applications -> Manage Applications -> Your Application Name -> Clear data

仅仅清除数据对我来说不起作用

起作用的是:

  • 卸载应用程序
  • 重新启动设备或模拟器
  • 禁用即时运行(不仅仅是主组,而是所有单个即时运行设置)
  • 构建->清洁项目
  • 构建->重建项目

    • 我只是犯了一个简单的错误

      原因:

      解决方案:


      刚刚发生在我身上。我不知道为什么,但将DB_VERSION属性更改为更大的数字使其工作。问题是:每次我更改DB的字段(SQLiteDB类的属性)时,我都需要更改该数字。

      谢谢您的回复,我使用了第一个链接作为我的数据库助手类的基础,但是我会尝试第二个链接来查看是否解决了这个问题。第二个链接已经解决了这个问题,但是我会采纳建议并在启动时创建表并首次填充表以防止APK过大。谢谢你的帮助。谢谢你的回复,你是对的。我现在已经解决了这个问题,在启动时创建数据库,并在第一次加载应用程序时填充数据,以防止Apk过大。如何更改db_版本?