मुझे एक ही समस्या का एक अलग स्वाद का सामना करना पड़ा था।
जब मैं डालने का प्रयास करता हूं तो मुझे no such table
त्रुटि मिल रही थी।
डालने से पहले, कोड
mDb = mDbHelper.getWritableDatabase();
getWritableDatabase()
, जब कहा जाता है पहली बार onCreate()
मैं इस OnCreate विधि
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
Log.v("INFO1","creating db");
//Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show();
}
भीतर तालिका बनाने के लिए मेरी SQL क्वेरी था कहेंगे बुला रहा था
तो मेरे लिए क्या हुआ था, db
सफलतापूर्वक बनाया गया था जब एप्लिकेशन पहले चलाया गया था कुछ अन्य त्रुटियों के कारण कोई तालिका नहीं है। बाद में जब भी एप्लिकेशन चलाया जाता है, onCreate()
को कभी भी db
के रूप में नहीं कहा जाता है और इस प्रकार कोई तालिका नहीं बनाई गई है, इसलिए सभी आगे SQL आदेश विफल हो गए।
तो मैं onCreate()
से बाहर तालिका बनाने चले गए, और अब अपने काम करने
आप एक साफ एमुलेटर पर अपने कोड को चलाने की है? क्या आपने यह भी सत्यापित किया है कि तालिका बनाने वाले कोड को निष्पादित किया जा रहा है? अगला चरण emqtor से sqlite डीबी प्राप्त करना होगा और यह जांचने के लिए कि तालिका वास्तव में मौजूद है, एक SQLite डेटाबेस ब्राउज़र का उपयोग करके इसे देखें। – hacken
हाय! मैंने पहले ही डेटाबेस बनाया है और पहले से ही बनाए गए डेटाबेस का उपयोग कर रहा है, इसलिए तालिका पहले से ही बनाई गई है। मैं बस मौजूदा तालिका पर चयन कर रहा हूँ। मेरी चिंता यह है कि यह सिम्युलेटर पर ठीक काम कर रहा है और फोन पर नहीं –
क्या आपने सत्यापित किया है कि तालिका वहां है? यह बहुत अधिक संभावना है कि फोन पर काम नहीं करने के बजाय फोन पर नहीं है। फिर यह सत्यापित करना बहुत आसान है कि आप डीबी सही तरीके से बनाए गए थे। – hacken