SQLite
 sql >> база данни >  >> RDS >> SQLite

Поставяне на данни за курсора в масив

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

"i" не е индексът на реда на курсора, а индексът на колоната. Курсорът вече е позициониран върху конкретен ред. Ако трябва да преместите курсора си. Използвайте cursor.move или moveToXXXX (вижте документацията).

За getString/Int/Long и т.н. просто трябва да кажете на курсора коя колона искате. Ако не знаете columnIndex, можете да използвате cursor.getColumnIndex("yourColumnName") .

Вашият цикъл трябва да изглежда така:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android Sqlite при надграждане изтриване на таблица от базата данни

  2. Най-добри практики за работа с множество таблици

  3. Максимален размер на базата данни на SQLite в приложението за Android

  4. Извличане на данни от sql база данни в flutter datewise?

  5. SQLite SUBSTRING() Обяснено