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
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
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. –
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