La declaración de selección de SQLite no funciona
Frecuentes
Visto 134 veces
0
He escrito un método para saber si se guardan los datos. El método debe devolver falso pero devuelve verdadero. Mis códigos están aquí;
private boolean baskaVarMi(String gelenTarih) {
boolean sonuc = false;
int k = 0;
SQLiteDatabase db = dbo.getReadableDatabase();
String sql = "select * from gunlukler where tarih='" + gelenTarih + "'";
Cursor c = db.rawQuery(sql, null);
if (c.moveToFirst()) {
do {
if (c.getString(c.getColumnIndex("tarih")) == gelenTarih) {
k++;
}
} while (c.moveToNext());
}
if (k > 0) {
sonuc = true;
}else if(k == 0){
sonuc = false;
}
return sonuc;
}
¿Cuál es el problema en este método?
4 Respuestas
2
cambia con eso:
Cursor c = db.rawQuery(sql, null);
if (c.getCount()>0) {
c.moveToFirst()
do {
if (c.getString(c.getColumnIndex("tarih")).equals(gelenTarih)) {
k++;
}
} while (c.moveToNext());
}
Respondido el 11 de Septiembre de 13 a las 14:09
1
Prueba de esta manera....
Cursor cur = db.query(SQL_TABLE, new String[] { URLNAME,ID,URLVALUE }, null, null,
null, null, null); // query..
Respondido el 11 de Septiembre de 13 a las 14:09
0
c.getString(c.getColumnIndex("tarih")) == gelenTarih
no es correcto. Ir con
c.getString(c.getColumnIndex("tarih")).equals( gelenTarih)
Respondido el 11 de Septiembre de 13 a las 14:09
0
usa solo esto
private boolean baskaVarMi(String gelenTarih) {
SQLiteDatabase db = dbo.getReadableDatabase();
String sql = "select * from gunlukler where tarih='" + gelenTarih + "'";
Cursor c = db.rawQuery(sql, null);
if (c.moveToFirst())
{
return true;
}
else
{
return false;
}
}
Respondido el 11 de Septiembre de 13 a las 14:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas android select android-sqlite or haz tu propia pregunta.
Cuando quieras comparar cadenas, tienes que usar
equals()
método. Pero en su escenario no hay razón para su segunda condición eqif (c.getString(c.getColumnIndex("tarih")) == gelenTarih)
No lo necesitas, pero si aún quieres usarlo, úsalo.equals()
También recomiendo usar declaraciones parametrizadas y no codificadas. - Simon DorociakEstoy de acuerdo con Sajmon, SQLite es tan apresurado, usa declaraciones parametrizadas, - johnny