Вызывается: android.database.sqlite.SQLiteException: рядом с "": синтаксическая ошибка (код 1): при компиляции:

     11-27 03: 32: 04.471: E / AndroidRuntime (23137): вызвано: android.database.sqlite.SQLiteException: рядом с «order»: синтаксическая ошибка (код 1): при компиляции: create table order (_id integer primary Ключевой автоинкремент, исходный текст не равен нулю, целое число не равно нулю); 

Класс MyDatabase:

public class MyDatabase extends SQLiteOpenHelper { public static final String TABLE_NAME = "order"; public static final String TABLE_ID = "_id"; public static final String TABLE_ORIGIN = "origin"; public static final String TABLE_QUANTITY = "quantity"; private static final String DATABASE_NAME = "Appple.db"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE = "create table " + TABLE_NAME + "(" + TABLE_ID + " integer primary key autoincrement, " + TABLE_ORIGIN + " text not null, " + TABLE_QUANTITY + " integer not null);"; public MyDatabase (Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } 

Класс работы:

 public class Operation { private MyDatabase dbHelper; private String[] COLUMNS = { MyDatabase.TABLE_ID, MyDatabase.TABLE_ORIGIN, MyDatabase.TABLE_QUANTITY }; private SQLiteDatabase database; public Operation(Context context) { dbHelper = new MyDatabase(context); } public void open() throws SQLException { database = dbHelper.getWritableDatabase(); } public void close() { dbHelper.close(); } public void add(String origin, String quantity) { ContentValues values = new ContentValues(); values.put(MyDatabase.TABLE_ORIGIN, origin); values.put(MyDatabase.TABLE_QUANTITY, Integer.parseInt(quantity)); database.insert(MyDatabase.TABLE_NAME, null, values); } public int get(String origin) { int total = 0; Cursor cursor = database.query(MyDatabase.TABLE_NAME, COLUMNS, MyDatabase.TABLE_ORIGIN + " = " + origin, null, null, null, null); cursor.moveToFirst(); while(!cursor.isAfterLast()) { total += cursor.getInt(2); cursor.moveToNext(); } cursor.close(); return total; } } 

В MainActivity начните с

 Operation op; op = new Operation(this); op.open(); 

Я думаю, что нет проблемы в CREATE TABLE. Но я не могу найти причину ошибки.

order – это ключевое слово в SQL. Переименуйте таблицу или поместите имя таблицы в двойные кавычки, например "order" .

order – это ключевое слово sqlite, а ключевые слова sqlite не могут использоваться как имя таблицы. Здесь вы можете найти список этих