sql >> Databasteknik >  >> RDS >> SQLite

Placera markördata i en array

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

"i" är inte markörradens index, det är kolumnindexet. En markör är redan placerad på en specifik rad. Om du behöver flytta markören. Använd cursor.move eller moveToXXXX (se dokumentationen).

För getString/Int/Long etc. behöver du bara tala om för markören vilken kolumn du vill ha. Om du inte känner till columnIndex kan du använda cursor.getColumnIndex("yourColumnName") .

Din loop bör se ut så här:

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. Hur man skapar databastabeller med SQL

  2. Databasfrågor:Hur hittar man en nål i en höstack?

  3. LOWER() – Konvertera till gemener i PostgreSQL

  4. SQL-fel ORA-01722:ogiltigt nummer