android.database.sqlite.SQLiteException:接近“外部”:语法错误(代码1):

问题描述:

我得到这个错误,当我想在我的数据库中写入一些值。这里是我的错误: 插入Foreign = someValue Translation = someValue android.database.sqlite.SQLiteException时出现错误:接近“Foreign”:语法错误(代码1):编译时:INSERT INTO TableDataBase(Foreign,Translation)VALUES(? ?)android.database.sqlite.SQLiteException:接近“外部”:语法错误(代码1):

我DBHelper.java:

public class DBHelper extends SQLiteOpenHelper implements BaseColumns { //Класс для работы с базой данных. 

private static final String DATABASE_NAME = "mydatabase"; 
private static final int DATABASE_VERSION = 1; 
private static final String DATABASE_TABLE = "TableDataBase"; 
public static final String FOREIGN_COLUMN = "Foreign"; 
public static final String TRANSLATION_COLUMN = "Translation"; 

private static final String DATABASE_CREATE_SCRIPT = "create table " //Скрипт создания база данных. 
     + DATABASE_TABLE + " (" + BaseColumns._ID + " integer primary key autoincrement, " + FOREIGN_COLUMN + " text not null, " + TRANSLATION_COLUMN + " text not null);"; 

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

public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { 
    super(context, name, factory, version); 
} 

public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { 
    super(context, name, factory, version, errorHandler); 
} 

@Override 
public void onCreate(SQLiteDatabase db) {//Функция того, что происходит при создании БД. 
    db.execSQL(DATABASE_CREATE_SCRIPT); 
} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //Функция того, что происходит при обновленнии версии БД. 
    db.execSQL("DROP TABLE IF IT EXISTS " + DATABASE_TABLE); //Удаляем старую таблицу и создаём новую. 
    onCreate(db); //Создаём новую таблицу. 
} 

而且在这里我想插入值:

public void OnClickOk(View view) { //Действия при нажатии на "галочку".  ДОРАБОТАТЬ 
    mDatabaseHelper = new DBHelper(this, "mydatabase", null, 1); 
    SQLiteDatabase sdb = mDatabaseHelper.getWritableDatabase(); //Создание обьекта баззы данных для записи. 
    ContentValues newValues = new ContentValues(); //Обьект в который будут записываться данные а потом сохраняться в БД. 
    newValues.put("Foreign", foreign.getText().toString()); //Сохранение иностранного языка в обьект. 
    newValues.put("Translation", translation.getText().toString()); //Сохранение перевода слова в обьект. 
    sdb.insert("TableDataBase", null, newValues); //Сохранение данных в таблице. 
} 
+2

外部关键字可能会被保留..您可以尝试更改此列的名称吗? –

FOREIGNsqlite keyword。重命名该列,或将其引用为例如"FOREIGN"

你不需要把汽车增量行中插入quert。

删除它,像这样。

public void OnClickOk(View view) { //Действия при нажатии на "галочку".  ДОРАБОТАТЬ 
mDatabaseHelper = new DBHelper(this, "mydatabase", null, 1); 
SQLiteDatabase sdb = mDatabaseHelper.getWritableDatabase(); //Создание обьекта баззы данных для записи. 
ContentValues newValues = new ContentValues(); //Обьект в который будут записываться данные а потом сохраняться в БД. 
newValues.put("Translation", translation.getText().toString()); //Сохранение перевода слова в обьект. 
sdb.insert("TableDataBase", null, newValues); //Сохранение данных в таблице. 

}