2016-08-08 39 views
-1

Ich habe eine Abfrage wie unten erwähnt, aber ich bekomme den Cursor, um 0 zurückzugeben, wenn ich die getCount() Funktion auf dem Cursor verwende.Wie rawQuery() mit einer WHERE-Klausel zu verwenden, um ein bestimmtes Datum aus einer bestimmten Spalte zu finden?

Bitte helfen Sie mir meine Anfrage richtig geschrieben zu bekommen.

String DT_Value = SetAlarm.Today_Date; 
SQLiteDatabase sqlDB = this.getWritableDatabase(); 
Cursor c = sqlDB.rawQuery("SELECT * from NAME WHERE DATE= " +DT_Value ,null); 
return c; 

Mein DT_Value Wert war 16-08-08 und dieser Wert ist auf der 4. Spalte meiner Tabellennamen verfügbar, aber wenn ich die Funktion aufrufen c.getCount() Ich erhalte die Zählung als 0.

+0

Wie haben Sie überprüft, dass der Wert in der Datenbank ist? Und ist die Spalte namens "DATE" für die 'NAME' Tabelle? –

+0

'Mein DT_Value-Wert war" 16-08-08 "' Dann ist Ihr Timestring falsch. Es sollte "2016-08-08" 'sein. Beachten Sie die einzelnen Anführungszeichen, die String-Werte enthalten (oder gebundene Parameter verwenden). Für Ihre Referenz: https://www.sqlite.org/lang_datefunc.html –

+0

Ich habe die Funktion, meine Datenbank anzuzeigen, so fand ich diesen Wert in db –

Antwort

0

Versuchen Sie Abfrage modifiziert verwenden

Cursor c = sqlDB.rawQuery("SELECT * from NAME WHERE DATE='"+DT_Value +"'",null); 
0

bekam ich die Lösung ist es, wie unten

String[] params = new String[]{ Today_Date }; 
     SQLiteDatabase sqlDB = this.getWritableDatabase(); 
     Cursor c = sqlDB.rawQuery("SELECT * FROM NAME WHERE DATE = ?", params); 
return c; 

Danke Jungs ...

0
public Cursor getuser(String name) { 

    SQLiteDatabase db = getReadableDatabase(); 
    String qry = "Select * from UserDetails where name ='" + name + "';"; 
    Cursor c  = db.rawQuery(qry, null); 
     return c; 

}