Android SQLite database not open exception -
11-01 18: 20: 09.953: ई / एंड्रॉइडरेंटाइम (528): घातक अपवाद: मुख्य 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): java.lang.IllegalStateException: डेटाबेस नहीं खोल 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): android.database.sqlite.SQLiteDatabase.insertWithOnConflict पर (SQLiteDatabase जावा: 1526) 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): 20: ०९.९५३: ई / AndroidRuntime phoenix.metro.uis.DBHelper.insertCart (DBHelper.java:149) 11-01 18 पर (528): पर phoenix.metro.uis.SearchActivity $ 4.onClick (SearchActivity.java:171) 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): पर android.view.View.performClick (View.java : 2485) 11-01 18: 20: 09.953: ई / एंड्रॉइड रेंटाइम (528): एंड्रॉइड। पर देखें। $ PerformClick.run देखें (देखें.जावा: 9080) 11-01 18: 20: 09.953: ई / एंड्रॉइड रेंटाइम (528) ): android.os.Handler.handleCallback (Handler.java:587) पर 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): android.os.Handler.dispatchMessage (Handler.java:92 पर) 11- 01 18: 20: 09.953: ई / एंड्रॉइड रनटाइम (528): पर Android.os.Looper.loop (Looper.java:123) 11-01 18: 20: 09.953: ई / एंड्रॉइडरेंटाइम (528): एंड्रॉइड। एप। एक्टिवटीट्रेड.माइन (गतिविधिट्रेड.जावा 3683) 11-01 18: 20: 09.953: ई / एंड्रॉइड रेंटाइम (528): java.lang.reflect.Method.invokeNative पर (मूल विधि) 11-01 18: 20: 09.953: ई / एंड्रॉइड रेंटाइम (528): java.lang.reflect.method पर। आह्वान (Method.java:507) 11-01 18: 20: ०९.९५३: ई / AndroidRuntime (528): com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:839) 11-01 18 पर: 20: ०९.९५३: ई / AndroidRuntime (528): 20: ०९.९५३: ई / AndroidRuntime (528): dalvik.system पर com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 11-01 18 पर .NativeStart.main (मूल विधि) नीचे दिए गए डेटाबेस कोड:
सार्वजनिक वर्ग DBHelper SQLiteOpenHelper का विस्तार करता है {// SQLiteOpenHelper: प्रबंधित करने के लिए एक सहायक वर्ग डेटाबेस निर्माण और संस्करण प्रबंधन निजी अंतिम स्थिर स्ट्रिंग sdb_NAME = "metro_sdb"; निजी स्थिर इंट sdbVersion = 2; // संस्करण होना चाहिए & gt; = 1 // तालिका नाम --------------------------------- निजी अंतिम स्थिर स्ट्रिंग TABLE_NAME = "आइटम"; निजी अंतिम स्थिर स्ट्रिंग TABLE_NAME_CART = "कार्ट"; // टेबल कॉलम (कार्ट) ------------------------------ निजी अंतिम स्थिर स्ट्रिंग COL_CART_ID = "id"; निजी अंतिम स्थिर स्ट्रिंग COL_CART_ADDDATE = "name"; सार्वजनिक DBHelper (संदर्भ संदर्भ) {सुपर (संदर्भ, sdb_NAME, null, sdbVersion); // नल कर्सर कारखाने के लिए डिफ़ॉल्ट है} @ ओवरराइड पब्लिक व्हाइड ऑन क्रिएट (SQLiteDatabase db) {// कॉल किया जाता है जब डेटाबेस को पहली बार बनाया जाता है स्ट्रिंग sql2 = "टेबल बनाएँ" + TABLE_NAME_CART + "(" + COL_CART_ID + "टेक्स्ट," + COL_CART_ADDDATE + "पाठ नल);"; db.execSQL (sql2); } @ ओवरराइड पब्लिक व्हॉयड ऑनअपअपग्रेड (SQLiteDatabase db, int oldVersion, int newVersion) {// कॉल किया गया जब डाटाबेस को अपग्रेड करने की आवश्यकता होती है। स्ट्रिंग एसक्यूएल = "यदि रिक्त टैब में मौजूद है" + TABLE_NAME; स्ट्रिंग sql2 = "यदि रिक्त तालिका मौजूद है" + TABLE_NAME_CART; db.execSQL (एसक्यूएल); db.execSQL (sql2); ऑन क्रेट (डीबी); } सार्वजनिक बूलियन डालेंकार्ट (कार्ट कार्ट) {SQLiteDatabase sdb = getWritableDatabase (); यदि (getCartItems (cart.id)। आकार ()> gt; {} सामग्री मूल्य = नए सामग्री मूल्य (); Values.put (COL_ITEM_ID, cart.id); Values.put (COL_CART_ADDDATE, cart.addDate); // लंबे समय तक = sdb.insert (TABLE_NAME_CART, शून्य, मान); लंबे समय तक = sdb.insertWithOnConflict (TABLE_NAME_CART, शून्य, मान, SQLiteDatabase.CONFLICT_REPLACE); sdb.close (); वापसी वापसी & gt; 0; } अन्य {sdb.close (); विवरण झूठा है; }} त्रुटि insertCart () फ़ंक्शन
क्या आप sdb.close () निकालने का प्रयास कर सकते हैं और इसे फिर से जांच सकते हैं?
Comments
Post a Comment