Estoy usando una base de datos para almacenar la fecha y quiero que se devuelva una sola columna en función de qué identificación se proporciona en el lugar donde está.Compruebe si el cursor tiene resultados
public String getPmax(String serial) {
String[] columns = new String[]{KEY_SERIAL, KEY_PMAX};
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, "serial = " + serial,
null, null, null, null);
String result = "nothing found";
if(c != null) {
int iPmax = c.getColumnIndex(KEY_PMAX);
c.moveToFirst();
result = c.getString(iPmax);
}
return result;
}
Este código funciona si uso una serie que está en la base de datos pero me da una estrecha vigor cuando estoy usando una serie que no está en la base de datos!
que dice:
04-11 16:31:19.423: E/AndroidRuntime(21226): java.lang.RuntimeException: Unable to start activity ComponentInfo{nl.janjanus.solardetect/nl.janjanus.solardetect.DatabaseView}: android.database.sqlite.SQLiteException: no such column: g: , while compiling: SELECT serial, pmax FROM SolareCel WHERE serial = g
Así que mi pregunta es: ¿Cómo verifico si hay resultado? o ¿necesito verificar si la serie dada es una serie que está en la base de datos?
El cursor no tiene filas, está vacío pero las pruebas anteriores todavía fallan, ¿por qué? ¿Hay algún otro cheque? Esto es realmente desconcertante. – Namratha
Nota: esto tiene el efecto secundario de colocar el cursor en la primera posición. Puede causar un problema si pasa un objeto de cursor que se ha movido a una posición específica a otra función y luego se espera que aún esté en la posición :) –