SQLite在启动时插入错误

时间:2012-06-27 19:46:54

标签: android sqlite insert-into

我创建了一个数据库并在其上创建了一些表。但在某些时候我做错了所以应用程序崩溃了。这是我的代码的一部分:

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 (姓名,姓氏,密码,出生年份,当前城市,未来城市,支票)价值观(?,?,?,?,?,?,?,?)

我已经检查了很多次,但我在这条线上看不到任何错误。任何帮助都会很好。

1 个答案:

答案 0 :(得分:1)

检查是一个保留字,你必须引用它。当你在create语句中执行它时,你在insert语句中忘了它。