android.database.sqlite.SQLiteException:near“Order”:语法错误(代码1):

时间:2017-10-05 14:52:32

标签: android sqlite exception

我的代码总是在sqlite中获得语法异常。 它总是在onCreate of DatabaseHelper中突出显示。 并且错误可能在创建表“Order”。

我正在使用Android Studio并开发订购系统,方法是通过listview中的适配器填充它。

这是我的代码:

package com.example.lenovot420.yumburgers;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
* Created by lenovot420 on 9/24/2017.
*/

public class DatabaseHelper extends SQLiteOpenHelper {

//version number to upgrade database version
//each time if you Add, Edit table, you need to change the
//version number.
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "JollibeeOrder.db";

public DatabaseHelper(Context context ) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    //All necessary tables you like to create will create here

    String CREATE_TABLE_ORDER = "CREATE TABLE " + Order.TABLE + " ("
            + Order.KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + Order.KEY_ORDER_NAME + " TEXT, "
            + Order.KEY_ORDER_EXTRA + " TEXT, "
            + Order.KEY_ORDER_PRICE + " TEXT, "
            + Order.KEY_ORDER_QUANTITY + " TEXT, "
            + Order.KEY_ORDER_TOTAL + " TEXT, "
            + Order.KEY_ORDER_PHOTO + " INTEGER )";

    db.execSQL(CREATE_TABLE_ORDER);

}


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    // Drop older table if existed, all data will be gone!!!
    db.execSQL("DROP TABLE IF EXISTS " + Order.TABLE);

    // Create tables again
    onCreate(db);

}
}

1 个答案:

答案 0 :(得分:1)

ORDERsqlite keyword,不能用作标识符。您需要"quote it"或更好,将其重命名为非关键字的内容。