郭宏志编写的android无线点餐系统的点菜功能怎么实现不了?老是报错
07-16 01:00:47.741: ERROR/AndroidRuntime(405): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.amaker.wlo/com.amaker.wlo.OrderActivity}: android.database.sqlite.SQLiteException: no such table: TableTbl: , while compiling: SELECT _id, num, description FROM TableTbl ORDER BY num DESC
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.os.Looper.loop(Looper.java:123)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread.main(ActivityThread.java:4627)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at java.lang.reflect.Method.invokeNative(Native Method)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at java.lang.reflect.Method.invoke(Method.java:521)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at dalvik.system.NativeStart.main(Native Method)
07-16 01:00:47.741: ERROR/AndroidRuntime(405): Caused by: android.database.sqlite.SQLiteException: no such table: TableTbl: , while compiling: SELECT _id, num, description FROM TableTbl ORDER BY num DESC
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:46)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1345)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:330)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:280)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at com.amaker.provider.TableProvider.query(TableProvider.java:96)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.content.ContentProvider$Transport.query(ContentProvider.java:163)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.content.ContentResolver.query(ContentResolver.java:245)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.Activity.managedQuery(Activity.java:1520)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at com.amaker.wlo.OrderActivity.setTableAdapter(OrderActivity.java:120)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at com.amaker.wlo.OrderActivity.onCreate(OrderActivity.java:71)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-16 01:00:47.741: ERROR/AndroidRuntime(405):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

解决方案 »

  1.   

    错误报得很明显,没有TableTbl这个表,自然就不能执行SELECT   _id,   num,   description   FROM   TableTbl   ORDER   BY   num   DESC 语句了,所以就出现异常.
      

  2.   

    可我明明建了TableTbl这个表,怎么就没有呢?
      

  3.   

    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    /**
     * 
     * @author 郭宏志
     * 数据库工具类
     */
    public class DBHelper extends SQLiteOpenHelper{
        // 数据库名称常量
        private static final String DATABASE_NAME = "Wireless.db";
        // 数据库版本常量
        private static final int DATABASE_VERSION = 2;
        // 表名称常量
        public static final String TABLES_TABLE_NAME = "TableTbl";
        public static final String TABLES_TABLE_NAME2 = "MenuTbl";
    // 构造方法
    public DBHelper(Context context) {
    // 创建数据库
    super(context, DATABASE_NAME,null, DATABASE_VERSION);
    } // 创建时调用
    public void onCreate(SQLiteDatabase db) {
    //将注释去掉---Bylee
            db.execSQL("CREATE TABLE" + " IF NOT EXISTS "+TABLES_TABLE_NAME+ " ("
                 + Tables._ID + " INTEGER PRIMARY KEY,"
                 + Tables.NUM + " TEXT,"
                 + Tables.DESCRIPTION + " TEXT"
                 + ");");        db.execSQL("CREATE TABLE " + TABLES_TABLE_NAME2 + " ("
                    + Menus._ID + " INTEGER PRIMARY KEY,"
                    + Menus.TYPE_ID + " INTEGER,"
                    + Menus.NAME + " TEXT,"
                    + Menus.PRICE + " INTEGER,"
                    + Menus.PIC + " TEXT,"
                    + Menus.REMARK + " TEXT"
                    + ");");
    } // 版本更新时调用
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // 删除表
    db.execSQL("DROP TABLE IF EXISTS TableTbl");//将注释去掉---Bylee
    db.execSQL("DROP TABLE IF EXISTS MenuTbl");
            onCreate(db);
    }}
      

  4.   

    public final class Tables  implements BaseColumns{
    // 授权常量
        public static final String AUTHORITY = "com.amaker.provider.TABLES";
            // 访问Uri
            public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/table");
            // 默认排序常量
            public static final String DEFAULT_SORT_ORDER = "num desc";// 按桌号排序
            // 表字段常量
            public static final String NUM = "num"; //桌号
            public static final String DESCRIPTION= "description"; // 描述
    }
      

  5.   

    哥们,问题解决了吗?我也遇到了这个问题,有两个地方有点问题,不过这两个地方我改过之后还是报错。这两个地方是:public final class Tables implements BaseColumns{}这个里面的应该还有一条“public static final String FLAG = "flag";”
    另一个地方是:db.execSQL("CREATE TABLE" + " IF NOT EXISTS "+TABLES_TABLE_NAME+ " ("
      + Tables._ID + " INTEGER PRIMARY KEY,"
      + Tables.NUM + " TEXT,"
      + Tables.DESCRIPTION + " TEXT"
      + ");");  这个里面是不是需要加上Tables.FLAG,并且NUM不是TEXT类型的
      

  6.   

    这句“public class DatabaseHelper extends SQLiteOpenHelper”
    不是添加数据库吗?请问数据库怎么添加啊?  ~菜鸟求指教~