У меня есть postgresql DB, и я хочу запросить таблицу «Locations», чтобы получить имена всех мест, которые соответствуют имени, введенному пользователем. Имя столбца - «LocationName». Я использую ASP.net с C#.как заявление для 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