2013-12-11 2 views
0

Я пытаюсь получить записи в таблице. Я использую этот кодНе удалось прочитать строку 0, col -1 из CursorWindow

 if(c!=null){ 
      if(c.moveToFirst()) { 

       String tipId = c.getString(c.getColumnIndex(DAO.TIP_ID)).toString().trim();     
       System.out.println("tipId: "+ tipId); 

      }else{ 
       // Handle no rows returned 
       System.out.println("Handle no rows returned"); 
      } 
     }else{ 
      System.out.println("debug Cursor , cannot be created"); 
     } 

Но это дает мне следующее исключение

Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it. 

и относится к этой линии:

String tipId = c.getString(c.getColumnIndex(DAO.TIP_ID)).toString().trim(); 

надежда кто помогает мне это исправить. Спасибо заранее.

ответ

2

В коде

c.getColumnIndex(DAO.TIP_ID) 

возвращается -1. Это означает, что значение DAO.TIP_ID оленьей кожу матча с любым именем столбца таблицы .Проверить это значение правильно и соответствует с именем столбца таблицы вы обращаетесь

надстройку следующей строки перед строкой, которая вызывает проблемы и вывесить выход LogCat здесь

Log.v("out-data",DAO.TIP_ID+" "+c.getColumnIndex(DAO.TIP_ID)+" "+c.getColumnName(0)); 

(добавить оператор импорта импорта android.util.Log; в начале вашего кода)

+0

Значение DAO.TIP_ID равно (_id), а также имя столбца (_id). Я скопировал это имя. :( – Eman87

+0

Я отредактировал ответ. Изменения и вывод logcat здесь – vivek

+0

Также опубликуйте свой выборный запрос – vivek

0

запрос selection не содержит colu mn DAO.TIP_ID.

0

Вы должны исправить это, чтобы решить это сообщение об ошибке

«Не удалось прочитать строку 0, -1 седловины от CursorWindow. Убедитесь, что курсор правильно инициализирован перед доступом к данным из него.»

он работает в моем коде.

  1. Попробуйте поместить курсор на moveToFirst перед чтением данных из него.

  2. проверить для null. например; if (c != null && c.moveToFirst()) {}

  3. проверка для счета. например; (c != null && c.getCount() >0 && c.moveToFirst()){}

Смежные вопросы