내 응용 프로그램은 간단한 테이블을 만들 수 없습니다.android에서 테이블을 만들 수 없습니다.
DatabaseHandler.java, 아래의 코드를 볼
MainActivity.java에서public class DatabaseHandler extends SQLiteOpenHelper {
private static final int DB_VERSION = 1;
private static final String DB_NAME = "PASSENGER_INFO_DB";
private static final String TABLE_NAME = "PASSENGER_INFO";
private static final String TABLE_COLUMN_SEAT_NO = "SEAT_NO";
private static final String TABLE_COLUMN_NAME = "NAME";
private static final String TABLE_COLUMN_AGE = "AGE";
private static final String TABLE_COLUMN_GENDER = "GENDER";
private static final String TABLE_COLUMN_FOOD_PREF = "FOOD_PREF";
private static final String CREATE_PASSENGER_INFO_TABLE = "CREATE TABLE IF NOT EXISTS "
+ TABLE_NAME + " (" + TABLE_COLUMN_SEAT_NO
+ " TEXT PRIMARY KEY, " + TABLE_COLUMN_NAME + " TEXT, "
+ TABLE_COLUMN_AGE + " INTEGER, " + TABLE_COLUMN_GENDER
+ " INTEGER, " + TABLE_COLUMN_FOOD_PREF + " TEXT" + ")";
public DatabaseHandler(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_PASSENGER_INFO_TABLE);
}
public void addPassengerInfo(PassengerInfo passInfo) {
SQLiteDatabase addPass = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(TABLE_COLUMN_SEAT_NO, passInfo.getM_seatNo());
values.put(TABLE_COLUMN_NAME, passInfo.getM_name());
values.put(TABLE_COLUMN_AGE, passInfo.getM_age());
values.put(TABLE_COLUMN_GENDER, passInfo.getM_gender());
values.put(TABLE_COLUMN_FOOD_PREF, passInfo.getM_foodPref());
addPass.insert(TABLE_NAME, null, values);
addPass.close();
}
DatabaseHandler dbhandler = new DatabaseHandler(this);
addSeat = "1A";
passName = "NA";
passAge = 0;
passGender = -1;
passFoodPref = "NA";
dbhandler.addPassengerInfo(new PassengerInfo(addSeat, passName, passAge, passGender, passFoodPref));
(PassengerInfo.class 필드에 대한 getter와 setter 메소드가)
때하세요 이걸 실행하면 logcat에 다음 오류가 표시됩니다.
01-23 19:09:18.311: I/Database(1303): sqlite returned: error code = 1, msg = table PASSENGER_INFO has no column named SEAT_NO
01-23 19:09:18.370: E/Database(1303): Error inserting FOOD_PREF=NA NAME=NA AGE=0 GENDER=-1 SEAT_NO=1A
또한 adb 셸을 통해 데이터베이스에 생성 된 테이블을 검사했습니다. 이름이 PASSENGER_INFO 인 테이블이 없습니다. 도와주세요! ");"
오류 메시지에 명확하게 설명 된대로 PASSENGER_INFO 테이블이 있어야합니다. DB를 어디서 찾고 있습니까? –
테이블에'_id' 컬럼을 추가 했습니까? –
http://stackoverflow.com/questions/10349337/creating-tables-in-sqlite-database-on-android –