#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 он не возвращает ни одной строки. Я предполагаю, что это что-то с несколькими внутренними соединениями.