2016-04-02 13 views
-2

Die Arbeits folgendes ist meine Funktion:wie Abfrage in SQLite android nicht richtig

public Cursor get_names(String n){ 
    SQLiteDatabase db = this.getReadableDatabase(); 

    //" select * from Record where name like '" 
    String query = " select * from Record where name like '"+n+"' ORDER BY name"; 

    Cursor res = db.rawQuery(query,null); 
    return res; 
} 

Um diese Funktion i senden, n wie:

String name = element.getText().toString(); 
if(name.length()!=0){ 
       name = name+"%"; 
      } 
      else 
      { 
       name="%"; 
      } 
      Cursor display = dbms.get_names(name); 

Dies funktioniert gut, wenn der Name in den Spielen Datenbank, aber die Abfrage funktioniert nicht, wenn der Name nicht übereinstimmt.

Wie finden, wenn der Name findet, der vom edittext empfangen wird, in der Datenbank oder nicht übereinstimmt.

EDITED: Ich verwende Anzeige später wie folgt aus:

Vector<String> array = new Vector<>(100); 
display.moveToFirst(); 
       do { 
        array.add(display.getString(1)); 
       } while (display.moveToNext()); 
+0

mit Was meinst du mit "nicht arbeiten"? –

+2

Wenn Sie 'res.getCount()> 0' erhalten haben, dann wurde das Ergebnis in' Database' gefunden –

+0

@CL. Meine App stürzt ab ... zum Beispiel, wenn ich in der Datenbank Namen wie eins, zwei habe, wenn ich n Wert gebe als 'f%' stürzt die App ab ... leider hat mein Android Studio einige Update Probleme und mein Gerät wird nicht verbunden Mit Studio und sogar Emulator läuft nicht [so kann ich den Fehler nicht posten und hier anmelden ..]. – sharan

Antwort

0

ich die problem..thanks MD gefunden

ich die Art und Weise geändert meiner Dsplay Cursor in diesem

if(display.getCount()>0) { 
       display.moveToFirst(); 
       do { 
        array.add(display.getString(1)); 
       } while (display.moveToNext()); 
      } 
      else{ 
       //name not found case.. 
      }