11-27 03:32:04.471: E/AndroidRuntime(23137): Caused by: android.database.sqlite.SQLiteException: near "order": syntax error (code 1): , while compiling: create table order (_id integer primary key autoincrement, origin text not null, quantity integer not null);
MyDatabase Klasse:Verursacht durch: android.database.sqlite.SQLiteException: in der Nähe von "": Syntaxfehler (Code 1):, beim Kompilieren:
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);
}
}
Betriebsklasse:
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;
}
}
In MainActivity mit
Operation op;
op = new Operation(this);
op.open();
denken beginne ich dort ist kein Problem in CREATE TABLE. Aber ich kann keine Fehler finden.
finden Sie sollten klarer mit was Ihr Problem ist. Ändern Sie den Titel der Frage in etwas passenderes und spezifizieren Sie das genaue Problem. Enthalten Sie auch full stacktrace und geben Sie die genaue Zeile an, in der es auftritt. – Magnilex