sql >> Database >  >> RDS >> SQLite

Cursorgegevens in een array plaatsen

names.add(cursor.getString(i));

"i" is niet de cursorrij-index, het is de kolomindex. Er staat al een cursor op een specifieke rij. Als u uw cursor moet verplaatsen. Gebruik cursor.move of moveToXXXX (zie documentatie).

Voor getString/Int/Long etc. hoef je alleen maar de cursor te vertellen welke kolom je wilt. Als u de columnIndex niet kent, kunt u cursor.getColumnIndex("yourColumnName") gebruiken .

Je lus zou er als volgt uit moeten zien:

public String[] getContacts(){
    Cursor cursor = getReadableDatabase().rawQuery("SELECT name FROM contacts", null);
    cursor.moveToFirst();
    ArrayList<String> names = new ArrayList<String>();
    while(!cursor.isAfterLast()) {
        names.add(cursor.getString(cursor.getColumnIndex("name")));
        cursor.moveToNext();
    }
    cursor.close();
    return names.toArray(new String[names.size()]);
}


  1. Het SQL Server-transactielogboek, deel 3:Basisprincipes van logboekregistratie

  2. De nieuwe primaire sleutel-ID van het record ophalen uit de MySQL-query voor invoegen?

  3. Omgaan met MySQL langlopende zoekopdrachten

  4. MySQL Selecteer alle kolommen uit de ene tabel en enkele uit een andere tabel