2013-04-21 13 views
11

Wiem, że to podstawowe pytanie, ale nie mogę znaleźć problemu. Próbuję uzyskać niektóre kolumny z rawQuery.Sqlite Wybierz zapytanie z rawQuery na Androidzie

SQLiteDatabase db=database.getReadableDatabase(); 

    try 
    { 
     String sql="SELECT * FROM CAR WHERE name = "; 
     Cursor crs = db.rawQuery(sql+"5P", null); 
    } 

Zawsze otrzymuję ten sam wyjątek.

android.database.sqlite.SQLiteException: **unrecognized token**: "5P": , while compiling: SELECT * FROM CAR WHERE name = 5P 

Mam 5P w tabeli CAR, jestem pewien, bo użyłem go innych zapytań.

Odpowiedz

20

albo trzeba zacytować tę wartość, albo jeszcze lepiej, korzystać z parametrów pozycyjnych:

String[] args={"5P"}; 
Cursor crs=db.rawQuery("SELECT * FROM CAR WHERE name = ?", args); 

Zaletą korzystania z parametrów pozycyjnych, że SQLite zajmie cytowanie ciąg, uciekając żadnych wbudowanych cytaty itp

Powiązane problemy