Android SQLite, wie man bestimmte Spalte:Zeile Wert

Ich habe eine Datenbank und ich mache eine Abfrage mit

Cursor mCursor = mapDb.query(MY_TABLE, new String[] {KEY_ONEID, KEY_TWOID}, "trim("+KEY_TWOID + ") != '' ", null, null, null, null);

welche in SQL-Begriffe wörtlich:
SELECT OneId, TwoId FROM auth WHERE trim(TwoId) != ''

Mithilfe der raw-SQL-Abfrage diese funktioniert in meinem SQLite-browser zeigen mir die Zeilen in Frage, so dass die Cursor-Objekt enthalten sollte, die gleichen Ergebnisse.

Zweitens in meinem java-Methode bin ich über eine Bedingung zu überprüfen, ob dieses Ergebnis hat nichts

    if(mCursor.getColumnIndex(KEY_ONEID) > -1)  //if > -1 then the mCursor returned a row
    {

       if(mCursor.getString(mCursor.getColumnIndex(KEY_ONEID)).contains(id)) //breaks here
                return mCursor.getString(mCursor.getColumnIndex(KEY_TWOID));
            else
                return "";
    }

Aber aus irgendeinem Grund, obwohl die mCursor hashmap sollten alle Werte zurückgegeben, das nächste bedingte Anweisung

mCursor.getString(mCursor.getColumnIndex(KEY_ONEID)).contains(id)

immer noch gibt: An exception occurred: android.database.CursorIndexOutOfBoundsException

dies ist die Linie, die die Ausnahme ausgelöst: mCursor.getString(mCursor.getColumnIndex(KEY_ONEID)) und so sieht meine nächste Element in der return-Anweisung

Ich bin ratlos, wie das abrufen einer bestimmten Zeile Wert! da habe ich gezogen, der Datenbank und ausführen der gleichen Abfrage und kann deutlich sehen, dass beide Werte, die ich will, haben in der Tat existieren!

den Cursor-Funktion bieten nicht viele andere Möglichkeiten, um Werte abzurufen, so insight geschätzt!

übrigens habe ich codiert eine leichte ORM-framework für Android. github.com/ahmetalpbalkan/orman, Sie können es verwenden, für solche Dinge. Es behandelt alle cursor Fällen und Sie sehen keinen Cursor oder SQL überhaupt. Es kann geben Sie das gewünschte column_name:row-pair-Mädchen. lassen Sie mich wissen, wenn Sie Sie verwenden möchten.

InformationsquelleAutor CQM | 2011-07-11

Schreibe einen Kommentar