2013-11-06 5 views
0

Я знаю, что уже задал этот вопрос, но, надеюсь, свежий набор глаз посмотрит на него. Я написал этот метод ниже, чтобы вернуть одно конкретное значение в качестве теста для моего запроса. Однако каждый раз, когда я запускаю программу, он падает, когда он достигает строки, начинающейся с курсора. Вот код:Что случилось с моим запросом?

public String getData(){ 
    String rName= ""; 
    String[] columns = new String[]{COLUMN_ROWID, COLUMN_NAME, COLUMN_TELEPHONE, COLUMN_EMAIL, COLUMN_MENUURL, COLUMN_WEBSITE, COLUMN_MOBILE}; 
    SQLiteDatabase.openDatabase(mPath, null, 0); 
    Cursor item = rDb.query(DATABASE_TABLE, columns, "name like 'Terry'", null, null, null, null); 
    rDb.close(); 
    for(item.moveToFirst();item.moveToNext(); item.isAfterLast()) { 
     rName = item.getString(item.getColumnIndex(COLUMN_NAME)); 
    } 


    return rName; 

} 

Что-то не так с тем, что я написал? rDb - это имя базы данных.

+0

должно быть чем-то вроде 'rDb = SQLiteDatabase.openDatabase (mPath, null, 0);' поскольку это то, что возвращает открытую базу данных. – njzk2

+0

спасибо, что сделал запрос работать !! хотя теперь есть проблема с циклом. есть ли у меня movetonext и isafterlast неправильный путь? – user2957710

+0

вы быстро закрываете db – Selvin

ответ

0

Изменение линии

SQLiteDatabase.openDatabase(mPath, null, 0); 

в

rDb = SQLiteDatabase.openDatabase(mPath, null, 0); 

SQLiteDatabase.openDatabase возвращает открытую базу данных. Ваш rDb не установлен иначе (хотя мы не можем видеть полный код, поэтому я не могу быть уверен).

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