Я пытаюсь получить значение из столбца расстояния, где имя соответствует строке предоставления. См. Код ниже:
public String getDistance(String station_name){
String distance = null;
Cursor cursor = database.rawQuery("SELECT distance from station_data where name =? ", new String[] {station_name} );
cursor.moveToFirst();
while(cursor.moveToNext()){
distance = cursor.getString(0);
cursor.moveToNext();
}
cursor.close();
return distance;
}
Я использую внешний файл базы данных в папке ресурсов Android и использую почти ту же функцию для заполнения моего счетчика. Он отлично работает со счетчиком, но возвращает нулевое значение при использовании вышеуказанной функции. Это моя таблица:
Помогите разобраться в проблеме. Заранее спасибо.
Строковое значение, см. Второй столбец в таблице. @VladyslavMatviienko
Возможный дубликат Android sqlite: как получить определенные данные из определенного столбца?
Я понимаю это, но какое значение например?
Допустим "Аламбаг" и я хочу вернуть 4.2 @VladyslavMatviienko
И вы уверены, что запрашиваете именно Alambagh
, полностью совпадающий со значением в таблице?
station_name: "Alambagh" через отладчик. @VladyslavMatviienko
Cursor cursor = database.rawQuery (DBSchema.DB_SELECT_ALL + "WHERE" + DBSchema.DB_ROW_ID + " = " + название_станции, null); если (курсор! = ноль) {если (cursor.moveToFirst ()) {делать {заголовок = cursor.getString (cursor.getColumnIndex (DBSchema.DB_TITLE)); } while (cursor.moveToNext ()); } cursor.close (); }
public String getDistance(String station_name){
String distance = null;
Cursor cursor = database.rawQuery("SELECT distance from station_data where name =? ",
new String[] {station_name} );
if (cursor.length() > 0){
cursor.moveToFirst();
distance = cursor.getString(0);
}
cursor.close();
return distance;
//Once try this. It will definitely work.
public String getDistance(String station_name){
String distance = null;
Cursor cursor = database.rawQuery("SELECT distance from station_data where name =? ", new String[] {station_name} );
if (cursor.moveToFirst())
{
distance = cursor.getString(0);
}
cursor.close();
return distance;
}
// Смотрите здесь, что не так в вашем коде.
// cursor.moveToFirst () для перемещения курсора к первому индексу курсора.
// cursor.moveToNext () для перемещения курсора на следующий индекс.
// Посмотрите, что вы здесь сделали.
public String getDistance(String station_name){
String distance = null;
Cursor cursor = database.rawQuery("SELECT distance from station_data where name =? ", new String[] {station_name} );
cursor.moveToFirst(); // CURSOR INDEX = 0
while(cursor.moveToNext()){ // CURSOR INDEX = 1
distance = cursor.getString(0);
cursor.moveToNext();
}
cursor.close();
return distance;
}
Возникла проблема с итерацией, которую я выполнял Рабочий код ниже:
public String getDistance(String station_name){
String distance = null;
Cursor cursor = database.rawQuery("SELECT distance from station_data WHERE name =? ", new String[] {station_name} );
cursor.moveToFirst();
while(!cursor.isAfterLast()){
distance = cursor.getString(0);
cursor.moveToNext();
}
cursor.close();
return distance;
}
что вы проходите как
station_name
?