تابع oncreate در sqliteDatabaseHelper
سلام.من در کلاس دیتابیس م به چهار تابع احتیاج داشتم که فیلد ها و نوع فیلد ها یکسان بوده ولی اسم این تیبل ها با هم فرق دارن. دیدم که بهتره یک کد برای ایجاد table در تابع oncreate بنویسم و فیلد نام table رو متغییر بزارم و هر سری که از دیتابیس یک شی ایجاد میکنم نام جدولی که باهاش کار دارم رو مقدار دهی کنم.حالا که میخوام دومین شی(یعنی ایجاد دومین تیبل) رو ایجاد کنم تیبل رو نمیشناسه در حالی که همین کد برای اولین جدول کار میکرد.میخوام بدونم که تابع oncreate فقط یکبار در برنامه اجرا میشه ؟ این کد منه.
private static class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT , " +
KEY_AREA + " TEXT NOT NULL , " +
KEY_DOMAIN + " INTEGER NOT NULL , " +
KEY_BLOCK + " TEXT NOT NULL , " +
KEY_MELK + " TEXT NOT NULL , " +
KEY_BUILD + " TEXT NOT NULL , " +
KEY_APARTEMAN + " TEXT NOT NULL , " +
KEY_PID + " INTEGER NOT NULL , " +
KEY_GUILD + " TEXT NOT NULL);"
);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
من چون مشکلم حل شد گفتم راه حل ش رو اینجا قرار بدم شاید به درد دوستان قرار بدم.مشکلم این بود که یه بار جدولی رو توی تابع oncreate ایجاد کردم و حالا میخواستم کد ایجاد چند تابع دیگه رو هم توی oncreate قرار بدم.ولی oncreate فقط یه بار اجرا میشه.برای این کار باید ورژن دیتابیس رو تغییر بدیم.همین.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .