Veritabanında halihazırda bir kayıt olup olmadığını kontrol etmesi ve yoksa, bazı şeyleri işleyip sonunda eklemesi ve veri mevcutsa verileri veritabanından okuyup okuması gereken bir android uygulamam var. Yeniden yazılabilir bir SQLiteDatabase örneği oluşturmak ve almak için SQLiteOpenHelper'ın bir alt sınıfını kullanıyorum; bu, zaten mevcut değilse tabloyu otomatik olarak oluşturmayı düşündüğüm (çünkü bunu yapacak kod onCreate'de (... ) yöntem).
Ancak, tablo henüz OLMADIĞINDA ve sahip olduğum ilk yöntem SQLiteDatabase nesnesi üzerinde çalıştırıldığında, bir sorgu (...) çağrısı olduğunda, logcat'im "I / Database (26434): sqlite döndü: hata code = 1, msg = böyle bir tablo yok: appdata "ve tabii ki appdata tablosu oluşturulmuyor.
Neden hakkında bir fikriniz var mı?
Tablonun var olup olmadığını test etmek için bir yöntem arıyorum (çünkü yoksa, veriler kesinlikle içinde değil ve tabloya yazana kadar okumam gerekmiyor, bu da tabloyu oluşturuyor gibi görünüyor düzgün) veya ilk sorgu çağrısı için zamanında oluşturulduğundan ve boş olduğundan emin olmanın bir yolu (...)
DÜZENLE
Bu, aşağıdaki iki cevaptan sonra yayınlanmıştır:
Sorunu bulduğumu düşünüyorum. Her ikisi de aynı veritabanı dosyasına erişmesine rağmen, bazı nedenlerden dolayı her tablo için farklı bir SQLiteOpenHelper oluşturulması gerektiğine karar verdim. Bu kodu yalnızca bir OpenHelper kullanacak şekilde yeniden düzenlemenin ve onCreate'in içinde her iki tabloyu oluşturmanın daha iyi çalışabileceğini düşünüyorum ...