Курсор возвращает 0, когда запрос должен возвращать строку

#java #android #sqlite

#java #Android #sqlite

Вопрос:

Это моя функция класса Databasehelper, курсор здесь возвращает 0, в то время как я проверил запрос в sqlite, и он возвращает одну строку, также какая-то та же функция для базового запроса select также работает нормально. Вот мой код

     public ModelClass getDataInfo(String dis)
    {
    String audio, Arabic,  Eng,  Urdu, trans,desc;
    SQLiteDatabase mDataBase =this.getReadableDatabase();
    ModelClass data=new ModelClass(null,null,null,null,null,null);
    Cursor cursor = mDataBase.rawQuery("select * from TblDua dua inner join TblCure cure on dua.DuaId=cure.DuaId inner join TblDisease disease on disease.DiseaseId=cure.DiseaseId where disease.category='" dis "'",null);
    cursor.moveToFirst();
    int i =cursor.getCount();
    while(!cursor.isAfterLast())
    {
        desc = cursor.getString(1);
        Arabic = cursor.getString(2);
        Urdu = cursor.getString(3);
        Eng = cursor.getString(4);
        trans = cursor.getString(5);
        audio = cursor.getString(6);
        data=new ModelClass(desc,Arabic,Urdu,Eng,trans,audio);
        //data.add(new ModelClass(desc,Arabic,Urdu,Eng,trans,audio));
        cursor.moveToNext();
    }
    cursor.close();
    close();
    return data;
    }
  

Я пытался предоставить разрешения в манифесте, но то же самое.

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

1. в какой момент курсор «возвращает 0»? вы отладили свой код?

2. можете ли вы опубликовать данные БД? или вы можете проверить, возвращает ли этот запрос какие-либо строки?

3. Так cursor.moveToFirst() что возвращает false?

4. cursor.getCount() возвращает 0, поэтому цикл while не запускается, но запрос в порядке, я протестировал его на SQLite, и он возвращает строку, но на Android он не возвращает ни одной строки. Я предполагаю, что это что-то с несколькими внутренними соединениями.