2017-04-25 5 views
-2

Ich habe zwei Schaltflächen, die Daten zur Datenbank hinzugefügt werden und eine andere erhält alle Daten. Tabelle ist meine Klasse, die Informationen zur Tabelle enthält (Table.TABLE_NAME == "Tabelle"). Aber der Cursor ist immer leer. Ich habe versucht, diese db.query (Table.TABLE_NAME, null, null, null, null, null, null) und es funktioniert auch nicht.Cursor ist leer

+0

sicher, dass Ihre App Linie 'Fall R.id.btnSearch' erreicht? Sicher hast du etwas in der Tabelle? Wie sieht die Tabellendefinition aus? – Trinimon

Antwort

0

Ihr Cursor ist immer Null, weil Sie ihn nie initialisieren. so etwas wie dieses Versuchen:

 Cursor cursor = db .query(TABLE_NAME, columns, null, null, null, null, null); 

Aber außerhalb des Schalterblock - sonst kann es nicht erreichen.

Verwenden Sie Debugger, es wird Ihnen alles sagen, was Sie wissen müssen, was tatsächlich passiert.

Sie können auch über die Verwendung von https://github.com/square/sqlbrite; Es wird Ihnen helfen, Ihre Daten in verschiedenen Fällen zu synchronisieren.

0

Verwenden Sie dbHelper.getReadableDatabase(), um Daten aus der Datenbank abzurufen.

Versuchen Sie folgendes:

 case R.id.btnSearch: 
       db = dbHelper.getReadableDatabase(); 
       cursor = db.rawQuery("select * from "+Table.TABLE_NAME,null); 
       break; 
+1

Es wäre ziemlich unwahrscheinlich, wenn das die Ausgabe von 'rawQuery' ändert. – Trinimon