SQLiteException:没有这样的表

use*_*076 4 database sqlite android

我正在使用自己的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;
    }
}
Run Code Online (Sandbox Code Playgroud)


它引发了一个错误说android.database.sqlite.SQLiteException: no such table: exhibitor: , while compiling: SELECT _id, EXHIBITOR FROM exhibitor ORDER BY EXHIBITOR,但当我检查数据库参展商在那里.

我错过了什么?

小智 18

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


小智 6

无论何时在现有数据库中创建新表,表都不会创建,因为每次都不会调用数据库处理程序的OnCreate函数,只有在需要时才会调用(如数据库未启动).如果不是这种情况,则新创建的表实际上没有创建.清除数据以强制db实例化自身.


Ste*_*teD 5

您是否已将数据库从资产文件夹移至/data/data/YOUR_PACKAGE/databases/仿真器上?

这是一篇有关将数据库移至/data/data/YOUR_PACKAGE/databases/不存在的很好的详细文章

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