3

このクエリはうまくいくようです:

public Cursor getOneWine(long id) {
    return database.query("vino", null, "_id=" + id, null,
                          null, null, null);
}

しかし、変更しようとする"_id"+idとうまくいき"name="+nameません!これも試しました:

public Cursor getSearchWine(String name) {
    return database.query("vino", new String[] {"_id", "name"}, "name="+name, null,
                          null, null, "name");
}

すべてのワインからカーソルが必要な場合にうまく機能します。

public Cursor getAllWines() {
    return database.query("vino", new String[] {"_id", "name"},  null, null,
                          null, null, "name");
}

Androidのドキュメントもチェックしましたが、解決策が見つかりませんでした。

4

1 に答える 1

1

SQLでは、文字列を引用符で囲む必要があります。

db.query("vino", new String[] {"_id", "nombre"}, "name='" + name + "'", ...);

ただし、名前に';が含まれていると、問題が発生します。代わりに、文字列のパラメータを使用することをお勧めします。

db.query("vino", new String[] {"_id", "nombre"}, "name=?", new String[] {name}, ...);
于 2012-11-28T16:07:29.677 に答える