2017-03-10 1 views
0

SQLiteデータベースの文字列と文字列を比較しようとしていますが、クエリに何らかのエラーがあると思います。android sqlliteの値と文字列を比較します

public Cursor selectfood(String food_pick){ 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor res = db.rawQuery("SELECT food,calorie FROM foodDatabase WHERE food = "+food_pick,null); 
    return res; 
} 

これは、次の例外がスローされます。

E/AndroidRuntime: FATAL EXCEPTION: main 

Process: com.example.nlss.custom_diet, PID: 1990 
android.database.sqlite.SQLiteException: near "khichdi": syntax error (code 1): , 
while compiling: SELECT food,calorie FROM foodDatabase WHERE food = Dal khichdi ,1 cup 

はこのSELECT文を書くために、他の代替手段はありますか?

+0

考える追加の単一引用符は、これは爆破する文字列 –

答えて

2
Cursor res = db.rawQuery("SELECT food,calorie FROM foodDatabase WHERE food = '"+food_pick+ "'",null); 

はこれを使用してみてください、あなたは私が

+0

有用であればこの回答を受け入れてください –

+0

データベーステーブルに何か問題があると思います – ltc

+0

データベース構造を変更しました。データベースのバージョンと名前を更新してください。これでエラーが解決し、アンインストールしてからアプリケーションを再インストールします。 –

0

選択クエリ文字列の値に ''がありません。

Cursor res = db.rawQuery("SELECT food,calorie FROM foodDatabase WHERE food ='"+ food_pick + "'",null); 
+0

を比較するために、D単一引用符を追加やりなさい値に引用符が含まれている場合は上に移動します。 –

1

次のクエリを使用します。

Cursor res = db.rawQuery("SELECT food,calorie FROM foodDatabase WHERE food = '"+food_pick + "'",null); 
関連する問題