2009-06-01 10 views
16

Eventuali duplicati:
Android Sqlite - “No Such Table” ErrorEccezione SQLite: nessuna tabella tale errore

Stiamo cercando di sviluppare un'applicazione su Android. Stiamo usando il database SQLite e al telefono ci stiamo ottenendo

SQLiteException: nessuna tabella.

Funziona correttamente sul simulatore.

Qualcuno può fornire un input su questo?

+1

Hai eseguire il codice su un emulatore pulito? Hai anche verificato che il codice che crea la tabella venga eseguito? Il prossimo passo sarebbe quello di ottenere il db sqlite dall'emulatore e guardarlo usando un browser di database sqlite per verificare che la tabella esista effettivamente. – hacken

+0

Ciao! Ho già creato un database e ho appena utilizzato il database già creato, quindi le tabelle sono già state create. Sto solo facendo il SELECT sul tavolo esistente. La mia preoccupazione è che funzioni bene sul simulatore e non sul telefono. –

+0

Hai verificato che il tavolo è lì? È molto più probabile che il tavolo non sia lì sul telefono di quanto non funzioni. Ancora una volta è molto semplice verificare che il DB sia stato creato correttamente. – hacken

risposta

14

Se non si specifica correttamente il nome del file del database, credo che ricada nella creazione di un database vuoto. Questa è generalmente la causa della "tabella non trovata". Controlla il percorso e il nome del file del database.

+1

stavo usando ad esempio: data @ base-db, quindi db era non essere creato.Dopo aver rimosso @ come database-db, funziona per me .... :) grazie per il suggerimento ... – PrinceMidha

2

Alcune persone sono state in grado di risolvere il problema utilizzando i passaggi indicati here. Mi sembra che questo problema esista su alcune versioni di Android 2.2. Ho incorporato questo cambiamento nel mio codice, anche se sto ancora cercando Beta tester per vedere se effettivamente funziona.

6

Avevo affrontato un diverso sapore dello stesso problema.

Stavo ricevendo l'errore no such table quando provo a inserire.

Prima di inserire il codice stava chiamando

mDb = mDbHelper.getWritableDatabase(); 

getWritableDatabase(), quando viene chiamato prima volta chiamerà onCreate()

ho avuto la mia query SQL per creare la tabella all'interno di questo metodo OnCreate

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 

Quindi, per quanto mi riguarda, lo db è stato creato correttamente quando l'applicazione è stata eseguita per la prima volta t nessuna tabella a causa di altri errori. In seguito ogni volta che si esegue l'applicazione, onCreate() non viene mai chiamato come db è già lì e quindi non viene creata alcuna tabella, quindi tutti gli altri comandi SQL non sono riusciti.

così ho spostato la creazione di tabella di onCreate(), e ora il suo lavoro

+1

allora come hai trovato db outside oncreate? –

Problemi correlati