postgresql DBがあり、テーブル「Locations」をクエリして、ユーザーが入力した名前と一致するすべての場所の名前を取得したいと思います。列名は「LocationName」です。私はC#でASP.netを使用しています。
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