मेरे पास एक डेटाबेस है जिसे मैं एक कॉलम जोड़ना चाहता हूं, मैंने स्थिर डेटाबेस संस्करण बदल दिया है, लेकिन जब मैं अपने डिवाइस पर प्रोग्राम चलाता हूं तो नया कॉलम अभी भी नहीं है इसलिए मुझे लगता है कि मेरा onUpdate
कॉल नहीं हो रहा है और मैं हूं यकीन नहीं है कि क्यों।sqlite डेटाबेस संस्करण अद्यतन कर रहे हैं?
यह है कि कैसे मैं डेटाबेस
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
createTables(db);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
Log.w("CalendarDB", "Upgrading database from version " + oldVersion
+ " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS Events_Table");
onCreate(db);
}
private void createTables(SQLiteDatabase db){
db.execSQL("CREATE TABLE " + EVENTS_TABLE + "(" + ID + " integer primary key autoincrement, " +
EVENT + " TEXT, " + LOCATION + " TEXT, " + DESCRIPTION + " TEXT, " + DATE + " TEXT, " + START + " LONG, " + END + " TEXT, " + REAL_START_TIME + " TEXT,"
+ REAL_END_TIME + " TEXT," + COLOR + " TEXT, " + BLINK + " TEXT, " + VIBRATE + " TEXT, " + RING_TONE_PATH + " TEXT, " + ICON + " TEXT, " + REMINDERS +
" TEXT, " + START_WITH_REMINDER + " TEXT, " + CALENDAR_ID + " TEXT, " + EVENT_ID + " TEXT);");
}
}
है कुछ और बनाने मैं onUpdate
कहा जाता है करने के लिए प्राप्त करने के लिए क्या करना है? मैं निम्नलिखित this answer लेकिन कोशिश की अभी भी कोई परिणाम
तो मैं getWritableDatabase कहां कॉल करूं? क्या मुझे इसे अपने कन्स्ट्रक्टर में कॉल करना चाहिए? – tyczj
जहां भी आप इसका उपयोग करने जा रहे हैं ... मैं सामान्य रूप से इसे अपने ContentProvider में उपयोग करता हूं लेकिन यदि आपके पास कोई नहीं है, तो यह आपके कोड में आसानी से चलना चाहिए, जहां भी आप एक डालने या अपडेट करने के लिए जा रहे हैं। योग्य डेटाबेस होना चाहिए कहा जाता है, यह इसके उपयोग को मजबूर करने के लिए necesary नहीं है। – Necronet
@tyczj ~ "मैं कहां getWritableDatabase कहां कॉल करूं?" मुझे लगता है कि आप CRUD परिचालन करने के लिए SQLiteOpenHelper क्लास का उपयोग कर रहे हैं? उस स्थिति में जब आप अपने कोड में SQLiteOpenHelper का उदाहरण प्राप्त करते हैं तो आप getWritableDatabase() को कॉल करेंगे। –