2014-01-21 2 views
0

мое приложение сохраняет имя модели в строке. Чем он читается в базе данных, чтобы найти модель. Когда столбец не существует, программа должна взять столбец «NotListed». Как мне это сделать?Android SQLite Где не найден

Мой код: Я думал, что курсор пуст, если столбец не существует, но он не работает.

String s = android.os.Build.MODEL; 
    Cursor dataCursor = mDb.rawQuery 
      ("SELECT * FROM Smartphone WHERE Model = '"+s+"'",null); 
    if (dataCursor!=null) 
      { 
     dataCursor.moveToNext(); 
      }else { 
    dataCursor = mDb.rawQuery 
      ("SELECT * FROM Smartphone WHERE Model = 'NotListed'",null); 
    dataCursor.moveToNext(); 
    } 

ответ

1
if (dataCursor!=null) 
    { 
     if(dataCursor.getCount()!=0){ 
      dataCursor.moveToNext(); 
     } 
     else { 
     dataCursor = mDb.rawQuery 
     ("SELECT * FROM Smartphone WHERE Model = 'NotListed'",null); 
     dataCursor.moveToNext(); 
     } 
    } 
6

Cursor никогда не null, он просто будет содержать 0 или более строк, или исключение.

Проверьте результат moveToNext() (или более канонически, moveToFirst()), выполнено ли перемещение, т. Е. Существует не менее 1 строки.

-1

попробовать его :::: ---- >>>

dataCursor = mDb.rawQuery ("SELECT * FROM Smartphone WHERE Model =" + "NotListed", NULL);

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