प्रारंभ करने के लिए कहां और कब मैं अपने ऐप में एसक्लाइट का उपयोग करने में वास्तव में संघर्ष कर रहा हूं;एंड्रॉइड एसक्यूएलसाइट SQLiteOpenHelper
मैं एक डेटाबेस सहायक वर्ग कि SQLiteOpenHelper
तक फैली हुई हैpublic class DatabaseHelper extends SQLiteOpenHelper {
OnCreate में मैं के बारे में 6 टेबल बनाना हूँ की स्थापना की है:
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE myTestTable (Id INTEGER PRIMARY KEY , "
+ "info TEXT," +
+ "TopLeft TEXT")); <-- example insert
}
जब मेरे अनुप्रयोग मैं कुछ XML पार्सिंग और कर रहा हूँ शुरू होता है तालिका में डेटा दर्ज करना, और मैंने डेटाबेस की जांच की है और सब वहाँ है और मेरी टेबल सही ढंग से बनाई गई हैं।
जब मैं डेटा कॉल करने जाता हूं तो यह चला जाता है! मेरे पास मेरे डबेलर वर्ग के भीतर और प्रत्येक गतिविधि पर कई अलग-अलग प्रश्न हैं; मैं कक्षा को फिर से समायोजित कर रहा हूं ताकि मैं कक्षा के भीतर अपने कार्य में प्राप्त कर सकूं।
मुझे लगता है कि यह ऐसा करने का तरीका नहीं है क्योंकि यह मेरे ऑनक्रेट को फिर से चलाता है और मेरी सभी टेबल मिटा देता है (या कम से कम ऐसा लगता है जब मैं डेटा को कॉल करने का प्रयास करने के बाद डीबी की जांच करता हूं यह और यह खाली है!
मैं छाप OnCreate केवल एक बार भाग गया के तहत किया गया है, लेकिन इस मामले में स्पष्ट रूप के रूप में यह मेरी डीबी हर पुनः बनाने और अपने डेटा पोंछते प्रतीत होता नहीं है!
तुम कहाँ के लिए होती हैं डबेलर क्लास को शुरू करें और आप इसे टेबल को दोबारा कैसे रोकते हैं? मुझे ऐप बंद होने पर भी जारी रखने के लिए डेटा चाहिए!
मैं उलझन में हूँ!
यदि यह समझ में नहीं आता है तो कृपया विशिष्ट प्रश्न पूछें कि मैं इसे कैसे स्पष्ट कर सकता हूं!
अद्यतन
मैं पाया है मैं
CREATE TABLE IF NOT EXISTS
कौन सा यह बंद हो जाता है टेबल पुनः जोड़ सकते हैं, लेकिन यह अभी भी सही OnCreate हर बार बुला प्रतीत नहीं होता ..
अच्छा प्रश्न और मुझे आशा है कि कोई एक जवाब के साथ आता है जहाँ तक अपने "सम्मिलित", हालांकि आप लेन-देन डेटाबेस बंद करने से पहले सफल अंकन कर रहे हैं? –
क्या आपकी कक्षा को स्थैतिक रूप से समस्या को ठीक करने की घोषणा करता है? –
@DAVE G सभी डेटा निश्चित रूप से डीबी में जा रहे हैं, क्या मैं डालने के बाद डीबी को बंद करना चाहता हूं? वर्तमान में बस कर रहे हैं: \t SQLiteDatabase db = this.getWritableDatabase(); .... सभी डेटा को collating और कर रहा है: db.insert ("TABLENAME", शून्य, सीवी); ... और इसका अंत है ?! – Bex