sql >> Databáze >  >> RDS >> SQLite

Vkládání dat kurzoru do pole

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

"i" není index řádku kurzoru, je to index sloupce. Kurzor je již umístěn na konkrétním řádku. Pokud potřebujete změnit polohu kurzoru. Použijte kurzor.move nebo moveToXXXX (viz dokumentace).

Pro getString/Int/Long atd. stačí kurzoru sdělit, který sloupec chcete. Pokud neznáte columnIndex, můžete použít cursor.getColumnIndex("yourColumnName") .

Vaše smyčka by měla vypadat takto:

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. Chyba Oracle .Net ManagedDataAccess:Nelze načíst typ 'OracleInternal.Common.ConfigBaseClass' ze sestavy

  2. Jak vytvořit databázový model od nuly

  3. Najděte řetězec prohledáním všech tabulek na serveru SQL Server

  4. Příprava serveru MySQL nebo MariaDB pro produkci – část první