Zählt die Anzahl der Tabellen in der SQLite-Datenbank

8

Ich brauche eine Anzahl der Tabellen, die sich momentan in meiner SQLite-Datenbank befinden. Versuchte Suche, bekam aber keine direkte Methode.

Ich habe diese Methode in meinem DbHelper ausprobiert.

%Vor%

Aber diese Methode gibt mir eine falsche Anzahl. Ich habe nur 3 Tabellen in meiner DB, aber diese Methode gibt als 5 zurück. Was könnte mit dieser Methode falsch sein. Gibt es eine direkte Methode, um die Anzahl zu erhalten.

    
darsh 16.07.2012, 14:32
quelle

3 Antworten

17

Ihre Methode ist in Ordnung, Sie könnten sogar SELECT count(*) ... verwenden. Aber es gibt zwei Tabellen, die automatisch erstellt werden android_metadata und sqlite_sequence , berücksichtigt diese einfach: 5 - 2 = 3 Tabellen, die Sie erstellt haben.

Oder seit Squonk eine hervorragende Dokumentation darüber geliefert hat, wann sqlite_sequence erstellt wurde und wann nicht existieren, empfehle ich diese Abfrage:

%Vor%

Ein paar Hinweise, um Ihren Code zu verkürzen

All dies:

%Vor%

Kann so erreicht werden:

%Vor%

Cursor.moveToNext () gibt true zurück, wenn die nächste Zeile existiert. Wenn ein neuer Cursor nicht leer ist, gibt moveToNext () true zurück und setzt diesen Index auf die erste Position. Wenn cursor.isAfterLast() == true , gibt moveToNext () false zurück.

Aber wenn Sie einfach zählen möchten, wie viele Zeilen im Cursor sind, verwenden Sie:

%Vor%

Speichern Sie zuletzt Ihre schreibbare Datenbank in einer Variablen.

%Vor%

Ich habe das nicht getestet, aber wenn getReadableDatabase () jedes Mal ein neues SQLiteDatabase-Objekt zurückgibt, dann schließen Sie einfach diese neue Datenbank, sobald Sie sie erstellt haben ... Ich würde die Datenbank einmal schließen und ich würde es schließen nachdem Ich habe alle Cursor, die ich daraus abgerufen habe, geschlossen.

%Vor%

Wenn Sie viele Abfragen verwenden, sollten Sie Ihre Datenbank in onResume () öffnen und in onPause () schließen.

    
Sam 16.07.2012, 14:43
quelle
1

Finden Sie Zähl- und Tabellennamen

Anzahl finden

%Vor%

ruft Tabellennamen ab

%Vor%     
Rahul Chhangani 30.12.2013 05:44
quelle
0

Versuchen Sie

%Vor%

Geben Sie einfach Ihren Datenbanknamen wie gezeigt ein.

    
Chintan Raghwani 16.07.2012 14:45
quelle

Tags und Links