Wie zu verwenden rawQuery mit where-Klausel?
Ich bin mit WHERE-Klausel in rawquery abrufen von Daten aus der SQLite-Datenbank wie folgt:
public Cursor Return_SMS(String contact_no)
{
SQLiteDatabase db=this.getReadableDatabase();
//String[] params=new String[]{contact_no};
Cursor c=db.rawQuery("SELECT * FROM "+ "SMS_TABLE_RCV"+" WHERE "+ "Phone_number " + " = " + contact_no,null);
return c;
}
Aber es werden keine Daten abgerufen. Wie kann ich Daten mit Phone_number gleich Werte, die ich übergeben aus einer Tätigkeit im cursor als "contact_no" ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um den Wert eines Parameters in der Abfrage, die Sie verwenden müssen, eine parameter token wie
?
:Für eine einfache Abfrage wie diese, die Sie nicht brauchen, um verwenden
rawQuery
aber konnte einfach Abfrage:Haben Sie auch, um sicherzustellen, dass die Telefonnummer korrekt ist, d.h., ist die Telefon-Nummer und keine andere Nummer und ID, die Sie in der Datenbank vorhanden.
Verwenden Sie diese Zeile :
statt
contact_no
enthält ein Zitat.Diesem Weg versuchen
contact_no
enthält ein Zitat; der zurückgegebene cursor kann nienull
; und diese Funktion ist nicht anrufen sollenmoveToFirst
(das ist nutzlos, ohne die überprüfung der Rückgabewert sowieso).