Wyświetlanie danych z bazy SQLIte (Android)

Wyświetlanie danych z bazy SQLIte (Android)
art1977
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:42
0

Witam, próbuję wyświetlić dane z tabeli w bazie danych SQLite na Androidzie. Niby wszystko okej, działa wszystko perfekcyjnie, lecz gdy już próbuję utworzyć drugą tabelę, i drugą metodę do wyświetlania danych z tabeli nr.2 - aplikacja się wywala ze wskazaniem na linijkę:

Kopiuj
kursor = db.query("tabela2", kolumny, null, null, null, null, null);

przez co nie może wykonać się linijka w aktywności:

Kopiuj
 kursor = dm.wyswietlanie_z_drugiej_tabeli();

Oto kod "menadżera" mojej bazy danych:

Kopiuj
 public class DatabaseManager extends SQLiteOpenHelper {
 
    Cursor kursor;
    SQLiteDatabase db;
 
 
    public DatabaseManager(Context context) {
        super(context, "oceny.db", null, 1);
    }
 
 
 
    //Utworzenie Bazy danych - stworzenie tabeli z ocenami
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(
                "create table tabela1(" +
                "nr integer primary key autoincrement," +
                "ocena integer);" +
                "");
 
        db.execSQL(
                "create table tabela2(" +
                        "nr integer primary key autoincrement," +
                        "ocena integer);" +
                        "");
 
    }
 
     
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
 
    //wyświetlanie zawartości tabeli
    public Cursor wyswietlanie_z_pierwszej_tabeli(){
        String kolumny[] = {"nr", "ocena"};
        db = getReadableDatabase();
        kursor = db.query("tabela1", kolumny, null, null, null, null, null);
        return kursor;
    }
 
    public Cursor wyswietlanie_z_drugiej_tabeli(){
        String kolumny[] = {"nr", "ocena"};
        db = getReadableDatabase();
        kursor = db.query("tabela2", kolumny, null, null, null, null, null);
        return kursor;
    }
}

Tak jak wspomniałem, wyświetlanie z pierwszej tabeli w innej aktywności działa bez problemu.

Z góry dziękuję za wszelką pomoc.

Pozdrawiam

edytowany 1x, ostatnio: art1977
MrHyperion
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 4 lata
  • Postów:112
1

Wywala się - dodaj komunikat logcata. Wróżyć to ja nie potrafię. Przy okazji jak już tworzysz tabelę to wstaw gotowego Stringa, a nie bawisz się w jakieś budowanie zapytać (w sensie komendę tworzenia tabeli przypisz do zmiennej - łatwiej będzie manipulować).

art1977
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:42
1

@MrHyperion: tak, wiem, że wypada tak zrobić, odłożyłem sobie to po prostu na póżniej.

Problem rozwiązany, męczyłem się z nim pół dnia, a rozwiązanie okazało się banalnie głupie: wyczyszczenie danych aplikacji. Baza danych była już utworzona, przez co nie wywoływało mi metody onCreate, w której dołożyłem tabela2 :p Dziękuję za chęć pomocy, zamykam temat :D

panryz
  • Rejestracja:około 17 lat
  • Ostatnio:4 dni
0

@art1977: to nie jest rozwiązanie. Pomyśl co by się stało gdybyś tą drugą tabele puścił jako update do użytkowników. Każdy z nich musiałby czyścić cache bo apka by mu się sypała? No coś tu jest nie halo.

art1977
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:42
0

@panryz: Znalezienie źródła problemu pozwoliło mi właśnie rozwiązać problem w taki sposób, że nie wystąpi sytuacja, którą przedstawiłeś :) Ale dzięki za podpowiedź

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.