android
  • sqlite
  • 2013-04-23 3 views 0 likes 
    0

    Я выполняющиеся в SQLite запрос:SQLite запрос не возвращает никаких записей

    String selectQuery = "SELECT hotel.cityName, hotel.hotelName, hotel.roomName, hotel.roomCode, hotel.roomType, hotel.maxPax FROM hotel WHERE (hotel.cityName = 'Adelaide' OR hotel.cityName = 'Brisbane' OR hotel.cityName = 'Canberra') AND hotel.maxPax < 200 AND hotel.maxPax >= 100 AND (hotel.roomType = 'Boardroom')" 
    

    против таблицы базы данных под названием «гостиница» создана из XML, со следующими заголовками (в соответствии с DDMS):

    id (INT) 
    cityName (TEXT) 
    hotelName (TEXT) 
    roomCode (TEXT) 
    roomName (TEXT) 
    roomType (TEXT) 
    maxPax (INT) 
    

    Каждый раз, когда я запускаю запрос:

    SQLiteDatabase db = this.getWritableDatabase (); 
        Cursor cursor = db.rawQuery (selectQuery, null); 
    

    cursor.getCount() возвращает 0.

    Я проверил фактические данные, и этот запрос обязательно должен вернуть данные. Почему cursor.getCount() возвращает 0?

    ответ

    1

    Ваш код Java выглядит хорошо, я предполагаю, что проблема связана с вашим SQL. Когда у меня возникают такие проблемы, я часто заново создаю содержимое базы данных в или SQLite Browser Firefox, а затем беру запрос и начинаю удалять вещи из кластера WHERE до тех пор, пока не получу результаты.

    +0

    Thx для справки. Удалось заставить его работать, используя Firefox SQLite Manager (отличный ресурс!). Это была глупая опечатка с моей стороны :( – user2313303

    0

    Попробуйте использовать метод «запроса» (Android Developers)

    db.query("hotel", null, "(cityName = ? OR cityName = ? OR cityName = ?) AND maxPax < 200 AND maxPax >= 100 AND roomType = ?", new String[] {"Adelaide", "Brisbane", "Canberra", "Boardroom"}, null, null, null); 
    

    Если он не работает, извлечения базы данных и тестирования запроса.

    0

    Попробуйте присвоить переменную базы данных SQLiteOpenHelper. Я действительно не знаю, имел бы ли довольно произвольный this метод getWritableDatabase().

    SQLiteOpenHelper helper = new SQLiteOpenHelper() 
    SQLiteDatabase db = helper.getWritableDatabase(); 
    
    +0

    Извините, забыли поставить цитаты вокруг строки :(у фактического selectQuery есть кавычки вокруг него, я исправлю вопрос. – user2313303

    +0

    @ user2313303 изменил мой ответ. – StoneBird

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