0

データベースを作成し、その上にいくつかのテーブルを作成しました。しかし、ある時点で私は間違っているので、アプリは onStart でクラッシュします。ここに私のコードの一部があります:

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: 「チェック」の近く: 構文エラー: 、コンパイル中: INSERT INTO UserInfos (名前、姓、メール、パスワード、birthyear、currentcity、futurecity、check ) 値 (?,?,?,?,?,?,?,?)

何度もチェックしましたが、この行にエラーは見られませんでした。どんな助けもとてもいいでしょう。

4

1 に答える 1

1

check は予約語なので、引用する必要があります。create ステートメントで実行しているときに、insert ステートメントでそれを忘れました。

于 2012-06-27T19:59:29.797 に答える