Данные из базы данных Sql в массив

#java #android #sql #arrays #eclipse

#java #Android #sql #массивы #eclipse

Вопрос:

Я хотел бы поместить некоторые данные из базы данных Sql в массив

Вот мой код для массива:

 openDB();
Cursor c = myDb.getSpalte();
while (!c.isAfterLast()) 
     {
         s1nInt[i]  = c.getInt(1);
         i  ;
         c.moveToNext();
     }
c.close();
closeDB();
 

И вот мой код для getSpalte(); метода:

 public Cursor getSpalte()
{
    String where= null;
    Cursor c =  db.query(true, DATABASE_TABLE, KEY_KALOA, 
            where, null, null, null, null, null);
    if (c != null) 
    {
      c.moveToFirst();
    }
  return c;
}
 

И если я запускаю это, я получаю это исключение:

 06-27 13:34:01.021: E/CursorWindow(24334): Failed to read row 0, column 1 from a CursorWindow which has 1 rows, 1 columns.
 

теперь я получил для этой команды исключение:

   Number[] series2Numbers = {/*s1nInt[i-6],s1nInt[i-5],s1nInt[i-4],s1nInt[i-3],s1nInt[i-   2],s1nInt[i-1],*/s1nInt[i]};
 

Это мое исключение для этого:

 Graph.onStart() line: 75    
Graph(Fragment).performStart() line: 1801   
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 937 
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1106  
BackStackRecord.run() line: 690 
FragmentManagerImpl.execPendingActions() line: 1571 
FragmentManagerImpl$1.run() line: 447   
Handler.handleCallback(Message) line: 733   
 

Ответ №1:

Курсор начинается с 0 и должен быть перемещен в первую строку перед доступом к данным:

      while(c.moveToNext())
     {
         s1nInt[i]  = c.getInt(1);
         i  ;
     }
 

Комментарии:

1. Спасибо, это работает:) но не могли бы вы помочь мне в моей следующей проблеме?:)