私はpostgresql DBを持っており、テーブル "Locations"を照会して、ユーザーが入力した名前と一致するすべてのロケーションの名前を取得したいと考えています。列名は "LocationName"です。私はC#とASP.netを使用しています。パラメータを使用するnpgsqlのようなステートメント
NpgsqlConnection con = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ToString());
NpgsqlCommand cmd = new NpgsqlCommand("Select * from \"Locations\" where \"LocationName\" LIKE \"%@loc_name%\"", con);
cmd.Parameters.AddWithValue("@loc_name", Location_Name);
NpgsqlDataReader reader = cmd.ExecuteReader();
私はこの例外を取得:
Npgsql.NpgsqlException: ERROR: 42703: column "%((E'My place'))%" does not exist
私は%を使用せずにクエリを実行しようとしましたが、それは動作しません。 下記のように私も+と&を使用してみましたが、それはどちらか動作しませんでした:上記の行と
string query = "Select \"LocationName\" from \"Locations\" where \"LocationName\" LIKE '%'+ :loc_name +'%'";
を、私はこの例外を取得:
Npgsql.NpgsqlException: ERROR: 42725: operator is not unique: unknown + unknown
である必要があります。最後のクエリの場合:postgresは演算子を使用しています。プラス(+)ではなく、文字列を連結します。 – alfoks