我创建了一个数据库并在其上创建了一些表。但在某些时候我做错了所以应用程序崩溃了。这是我的代码的一部分:
private SQLiteStatement insertUserInfos;
private static final String TN_INFO = "UserInfos";
private static final String CREATE_TABLE_INFO = "CREATE TABLE "
+ TN_INFO
+ " ( \"name\" TEXT, \"surname\" TEXT, \"mail\" TEXT, \"password\" TEXT, \"birthyear\" TEXT, \"currentcity\" TEXT, \"futurecity\" TEXT, \"check\" TEXT ) ";
private static final String INSERT_INFOS = "INSERT INTO "
+ TN_INFO
+ " ( name, surname, mail, password, birthyear, currentcity, futurecity, check ) Values (?,?,?,?,?,?,?,?) ";
public DBHelper(Context context) {
this.ctx = context;
DBOpenHelper db = new DBOpenHelper(ctx);
database = db.getWritableDatabase();
insertUserInfos = database.compileStatement(INSERT_INFOS);
}
private class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_INFO);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我收到此错误:
06-27 22:42:01.870:E / AndroidRuntime(16550):引起:android.database.sqlite.SQLiteException:near" check&#34 ;:语法错误:,同时编译:INSERT INTO UserInfos (姓名,姓氏,密码,出生年份,当前城市,未来城市,支票)价值观(?,?,?,?,?,?,?,?)
我已经检查了很多次,但我在这条线上看不到任何错误。任何帮助都会很好。
答案 0 :(得分:1)
检查是一个保留字,你必须引用它。当你在create语句中执行它时,你在insert语句中忘了它。