PDA

View Full Version : خطا در اضافه كردن فيلد به جدول



sara_traveler
جمعه 15 شهریور 1392, 13:16 عصر
من زماني كه فيلد جديد به جدوولم اضافه ميكنم خطا ميده
در صورتي كه در ابتدا برنامه گفتم جدول پاك بشه

public void clearTable() {
database.delete(dbHelper.getTableName(), null, null);
}


و تنها زماني كه ديتابس جديد ايجاد ميكنم ميتونه جدولي با فيلدهاي جديدبسازه
واگرنه با ديتابيس قبلي نمي تونه

darkenerboy
جمعه 15 شهریور 1392, 14:15 عصر
بله
شما باید تو کلاست راهنمای پایگاه دادت تکلیف خودت رو روشن کنی که این فیلی هست یا نه !
اگه دو حالت پایگاه داده داری یک کلاس از روی این کلاسی که داری مشتق کن
و تغییراتی رو که میخوای رو روش اعمال کن
بعد با تشخیص صحیح در برنامت از یکیش استفاده کن

موفق باشی

sara_traveler
جمعه 15 شهریور 1392, 15:57 عصر
من دقيقا متوجه منظور شما نشدم
اما من فقط در يك جا دستور ايجاد جدول گذاشتم و بقيه جاها دارم از اون جدول استفاده ميكنم

darkenerboy
جمعه 15 شهریور 1392, 17:43 عصر
من اشتباه فهمیدم
لطفا سوالتون رو بیشتر توضیح بدید

ممنون

sara_traveler
جمعه 15 شهریور 1392, 21:35 عصر
ببينيد در يك كلاس من اينو گذاشتم

private static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
COLUMN_NAME + " TEXT," +
COLUMN_VALUE + " TEXT ," +
COLUMN_fam + " TEXT ," +
COLUMN_code + " TEXT " +
");";




در قسمت oncreate ()
اينو فراخوني كردم

public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}



حالا در قسمت
protected void onResume() {
super.onResume();

dbHandler.open();
dbHandler.clearTable();
refreshList();
}

و


public void clearTable() {
database.delete(dbHelper.getTableName(), null, null);
}



با توجه به اينكه ابتدا onResume() فراخوني ميشه پس بايد جدول پاك بشه و بعد جدول جديد ساخته بشه
اما اين اتفاق نميفته