sql >> Database teknologi >  >> RDS >> SQLite

Anbringelse af markørdata i et array

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

"i" er ikke markørens rækkeindeks, det er kolonneindekset. En markør er allerede placeret i en bestemt række. Hvis du har brug for at flytte markøren. Brug cursor.move eller moveToXXXX (se dokumentationen).

For getString/Int/Long osv. skal du blot fortælle markøren hvilken kolonne du ønsker. Hvis du ikke kender columnIndex, kan du bruge cursor.getColumnIndex("yourColumnName") .

Din loop skal se sådan ud:

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. phpMyAdmin på MySQL 8.0

  2. Hent række-id for en SQLite FTS3-tabel

  3. Vil UUID som primær nøgle i PostgreSQL give dårlig indeksydelse?

  4. Tips til brug af SQL Server med Salesforce SOQL