Estoy tratando de recuperar el valor de la columna de distancia donde el nombre coincide con la cadena que proporciona. Vea el código a continuación:

    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;
}

Estoy usando un archivo de base de datos externo en la carpeta de activos de Android y utilicé casi la misma función para llenar mi ruleta. Funciona bien con la ruleta pero devuelve el valor nulo cuando se utiliza la función anterior. Esta es mi mesa:

enter image description here

Ayúdame a resolver el problema. Gracias por adelantado.

0
Mohd Shad Mirza 13 sep. 2018 a las 08:04

3 respuestas

La mejor respuesta
    //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;
        }

// Vea aquí lo que está mal en su código.

// cursor.moveToFirst () para mover el cursor al primer índice del cursor.

// cursor.moveToNext () para mover el cursor al siguiente índice.

// Mira lo que hiciste aquí.

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;
    }
0
Akash Patel 13 sep. 2018 a las 06:57
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;
-1
sanket 13 sep. 2018 a las 05:14

Hubo un problema con la iteración que estaba realizando. El código de trabajo está abajo:

    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;
}
0
Mohd Shad Mirza 13 sep. 2018 a las 08:14