2013-11-29 2 views
0

Как получить число строк курсора без использования moveToFirst()?Чтение числа строк из курсора

(Можно ли сделать .getCount(), не делая .moveToFirst() ???)

LogCat

11-29 13: 37: 40.370: E/SQLiteLog (8459): (11) повреждение базы данных по линии 62665 из [00bb9c9ce4]

11-29 13: 37: 40,370: Е/SQLiteLog (8459): (11) оператор прекращает в 44: [выберите поз, определение , образец FROM word INNER JOIN sense ON word.wordid = sense.wordid INNER JOIN synset ON sense.synsetid = synset.synsetid LEFT JOIN ON образец sample.synsetid = син

Код

функции
try { 

    if (sqldb2 == null || !sqldb2.isOpen()) { 
     dbobj2 = new SqLiteConection(context, 
     "/mnt/sdcard/sk2.db"); 
     sqldb2 = dbobj2.openDB2(); 
    } 
    // if(sqldb2!=null){ 
     cursor_n = sqldb2.rawQuery(NOUN, null); 
     cursor_n.moveToFirst(); 
     if (cursor_n.getCount() > 0) { 
      if (cursor_n != null) { 
       if (cursor_n.moveToFirst()) { 
        do { 
         String strin = cursor_n 
         .getString(cursor_n 
         .getColumnIndex("definition")); 
         d_noun_List.add(strin); 
        } while (cursor_n.moveToNext()); 
        searchData_DTO.setD_nounList(d_noun_List); 

       } 

      } 
      cursor_n.close(); 
      }else { 
      break; 
      // record not found 
     }   

    } catch (Exception e) { 

Log.d("in Exception", "reason" + e);} 
+0

До сих пор я попытался с 1.cursor_n.moveToFirst() 2.cursor_n.getCount()> 0 3.cursor_n.getColumnCount()> 0 4.cursor_n! = Null – Gattsu

ответ

0

Совершено сам, выполнив резервное копирование БД

0

Используйте .getCount, чтобы получить счетчика строк

Cursor.getCount() 
+0

Он отлично работает в случае, если есть запись, но выбрасывает исключение, когда нет выходов строк. – Gattsu

+0

Напиши этот код в условии if, где он будет проверять, нет ли строки ничего другого. – Pihu

+0

Я сделал то же самое, что и в if, а затем выбрасывает в Exception (1901): reason android.database.sqlite.SQLiteDatabaseCorruptException: образ диска базы данных неверен (код 11) – Gattsu

0

Чтобы получить количество строк, вы можете использовать:

cursor_n.cursor.getCount(); 
Смежные вопросы