데이터베이스를 생성하고 테이블을 생성했습니다. 하지만 어떤 시점에서 내가 잘못하고있어 그래서 응용 프로그램의 충돌이 시작됩니다.SQLite 삽입시 시작시 오류가 발생했습니다
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 : "check"근처 : 구문 오류 : 컴파일 중 : INSERT INTO UserInfos (이름, 성, 메일, 암호, birthyear, currentcity, futurecity, check) 값 (?,?,?,?,?,?,? ,?)
여러 번 확인했지만이 줄에는 오류가 표시되지 않았습니다. 어떤 도움이라도 아주 좋을 것입니다.
일부 열 이름이 SQLIte에 예약 된 키워드이기 때문에 (나는 긍정적이지 않습니다.) (여기에 나열되어 있습니다 : http://www.sqlite.org/lang_keywords.html). INSERT INTO 문에서 열 이름 주위에 대괄호 [] 또는 큰 따옴표를 ""두는 것이 좋습니다. – AkiAki007
지옥 예! =) 고마워. 나는 단지 "CHECK"가 키워드라는 것을 간과했습니다.) 간단히 말해서, 나는 "checkFlag"라는 단어를 변경하여 더 이상 키워드가 아니며 문제가 해결되었습니다! =) – yahya
그런데 SQL 문자열을 만들 때 일반적으로 인용 부호를 사용하십시오. 이것은 필요하지 않습니다. – RvdK