4

私は以下を使おうとしています:

String dbquery = "Select * From stops where stopname LIKE '%?%' LIMIT 100";
String[] uinputarray = {uinput};
Cursor c = sDB.rawQuery(dbquery, uinputarray);

これは一貫してクラッシュします。

不思議なことに、次の古いテストコードを使用すると、次のようになります。

Cursor c = sDB.rawQuery("Select * From stops where stopname LIKE '%" + uinput + "%' LIMIT 100", null);

それは完璧に動作します。

私はselectionArgsを読んでいますが、正直なところ、自分が行ったことに何も問題はありません。

私は何が間違っているのですか?

みんなありがとう

4

1 に答える 1

7

selectionArgs自体に%を追加する必要があります。

selectionArgs = new String [] {searchString + "%"};

カーソルc=db.rawQuery( "SELECT column FROM table WHERE column =?"、selectionArgs);

注:したがって、searchString文字列の%と_は引き続きワイルドカードとして機能します。

于 2012-05-04T09:33:16.887 に答える