2009-06-01 21 views
16

संभव डुप्लिकेट:
Android Sqlite - “No Such Table” ErrorSQLite अपवाद: ऐसी कोई तालिका त्रुटि

हम Android पर एक आवेदन विकसित करने की कोशिश कर रहे हैं। हम SQLite डेटाबेस का उपयोग कर रहे हैं और फोन पर हमें

SQLiteException: ऐसी कोई तालिका नहीं है।

यह सिम्युलेटर पर ठीक काम कर रहा है।

क्या कोई इस पर कोई इनपुट प्रदान कर सकता है?

+1

आप एक साफ एमुलेटर पर अपने कोड को चलाने की है? क्या आपने यह भी सत्यापित किया है कि तालिका बनाने वाले कोड को निष्पादित किया जा रहा है? अगला चरण emqtor से sqlite डीबी प्राप्त करना होगा और यह जांचने के लिए कि तालिका वास्तव में मौजूद है, एक SQLite डेटाबेस ब्राउज़र का उपयोग करके इसे देखें। – hacken

+0

हाय! मैंने पहले ही डेटाबेस बनाया है और पहले से ही बनाए गए डेटाबेस का उपयोग कर रहा है, इसलिए तालिका पहले से ही बनाई गई है। मैं बस मौजूदा तालिका पर चयन कर रहा हूँ। मेरी चिंता यह है कि यह सिम्युलेटर पर ठीक काम कर रहा है और फोन पर नहीं –

+0

क्या आपने सत्यापित किया है कि तालिका वहां है? यह बहुत अधिक संभावना है कि फोन पर काम नहीं करने के बजाय फोन पर नहीं है। फिर यह सत्यापित करना बहुत आसान है कि आप डीबी सही तरीके से बनाए गए थे। – hacken

उत्तर

14

यदि आप डेटाबेस फ़ाइल नाम को सही तरीके से निर्दिष्ट नहीं करते हैं तो मुझे लगता है कि यह एक खाली डेटाबेस बनाने के लिए वापस आ जाता है। यह आम तौर पर 'तालिका नहीं मिली' का कारण है। अपना पथ और डेटाबेस फ़ाइल नाम देखें।

+1

मैं उदाहरण का उपयोग कर रहा था: डेटा @ बेस-डीबी, तो डीबी था नहीं बनाया जा रहा है।मैंने डेटाबेस-डीबी की तरह @ हटा दिए जाने के बाद, यह मेरे लिए काम करता है .... :) संकेत के लिए धन्यवाद ... – PrinceMidha

2

कुछ लोग here के चरणों का उपयोग कर समस्या को हल करने में सक्षम हैं। ऐसा लगता है कि एंड्रॉइड 2.2 के कुछ संस्करणों पर यह समस्या मौजूद है। मैंने अपने कोड में यह परिवर्तन शामिल किया है, हालांकि मैं अभी भी बीटा टेस्टर्स की तलाश कर रहा हूं ताकि यह देख सके कि यह वास्तव में काम करता है या नहीं।

6

मुझे एक ही समस्या का एक अलग स्वाद का सामना करना पड़ा था।

जब मैं डालने का प्रयास करता हूं तो मुझे 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() से बाहर तालिका बनाने चले गए, और अब अपने काम करने

+1

तो आप ऑनक्रेट के बाहर डीबी कैसे मिला? –

संबंधित मुद्दे