0
라는 이름의 열이 없습니다. 앱을 제거하고 새 에뮬레이터를 만들었지 만 문제가 아직 남아 있으므로 인터넷에 도움이 될만한 단서가 없습니다. :). 로그에 "sms_sentdate"라는 열이 있습니다. 누락 된 열입니다. 확인 된 값은 확인하고 문제는 알아낼 수없는 스키마 어딘가에 있습니다.Android SQLite 문제 표 ...
너희들이있는 동안 내 현재의 방법이 잘못되면 스키마가 업데이트되었다는 것을 어떻게 알릴 수 있는지 조언 해주세요.
public class SMSdb extends SQLiteOpenHelper{
private final static String DB_NAME = "SMSDB";
private final static int DB_VERSION = 4;
private static final String KEY_ID = "sms_id";
private static final String KEY_Text = "sms_text";
private static final String KEY_SMSReceiver = "sms_reciever";
private static final String KEY_Recurrence = "sms_recurrence_id";
private static final String KEY_SentDate = "sms_sentdate";
private static final String TABLE_SMS = "sms";
private static final String[] COLUMNS = { KEY_ID, KEY_Text, KEY_SMSReceiver, KEY_Recurrence, KEY_SentDate};
public final static String DB_SMSdb_TABLE_CREATE = "create table sms " +
"("+KEY_ID+" integer primary key autoincrement, " +
KEY_Text +" text not null, "+
KEY_SMSReceiver + " text not null,"+
KEY_Recurrence+" integer);"+
KEY_SentDate+" text);";
public SMSdb(Context context)
{
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
// TODO Auto-generated method stub
Log.i("Database", "Database creating");
database.execSQL(DB_SMSdb_TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
database.execSQL("DROP TABLE IF EXISTS sms");
onCreate(database);
}
public void addSms(SMS sms){
Log.d("addSMS", sms.toString());
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_Text, sms.getText());
values.put(KEY_SMSReceiver, sms.getSmsReceiver());
values.put(KEY_Recurrence, sms.getSms_recurrence_id());
values.put(KEY_SentDate, sms.getSmsSentDate());
db.insert(TABLE_SMS,
null,
values);
db.close();
}
}
나를 이길 : –
젠장! ** 블러디 세미콜론 ** –
고마워! @laalto, 나는 **을 제외하고 모두를 확인했습니다 **, 지금 부끄러워합니다 : P –