数据库rawQuery EROR

时间:2015-11-20 03:34:16

标签: android sqlite android-fragments android-database

11-20 11:20:37.147    4117-4117/com.example.ilhamsabar.cobadiet E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.example.ilhamsabar.cobadiet, PID: 4117
    android.database.sqlite.SQLiteException: no such table: dietocd (code 1): , while compiling: SELECT * FROM dietocd
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
            at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
            at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
            at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255)
            at com.example.ilhamsabar.cobadiet.LayoutOcd.onCreateView(LayoutOcd.java:46)
            at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
            at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5234)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:704)

1 个答案:

答案 0 :(得分:1)

首先,您应该提供有关错误的更多详细信息。一些代码,您的数据库结构,如果它是否已加密等等。

然后,您的错误为no such table

某些错误,当您确定表的名称和请求写得正确时,通常意味着您正在处理空数据库或表缺失,因为某个表的创建失败了的原因。

例如,我确定您对此表的数据库进行了第一次访问吗?如果您选择某些内容,您将看到没有表格或数据。

此错误来自创建数据库时的错误。基本上大多数应用程序正在做的是在设备中创建一个空数据库,然后将资产文件夹中随应用程序提供的内容复制到空数据库中。但是,如果进程中出现错误,则会取消副本,并且数据库仍为空。如果以编程方式创建所有数据库,则应表示表创建失败。

尝试在数据库上选择*以查看是否有内容,然后检查数据库创建过程。您可能会发现您的某个表丢失,或者数据库的创建失败。