Mam DB postgresql i chcę kwerendy tabeli "Lokalizacje", aby pobrać nazwy wszystkich lokalizacji, które pasują do nazwy wprowadzone przez użytkownika. Nazwa kolumny to "LocationName". Używam ASP.net z C#.podobne oświadczenie dla npgsql przy użyciu parametru
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();
otrzymuję ten wyjątek:
Npgsql.NpgsqlException: ERROR: 42703: column "%((E'My place'))%" does not exist
próbowałam uruchomieniem kwerendy bez użycia%, ale to nie działa. Ja również próbowałem za pomocą + i & jak podano poniżej, ale to nie działa albo:
string query = "Select \"LocationName\" from \"Locations\" where \"LocationName\" LIKE '%'+ :loc_name +'%'";
z powyższej linii, otrzymuję ten wyjątek:
Npgsql.NpgsqlException: ERROR: 42725: operator is not unique: unknown + unknown
Dla ciebie ostatnie zapytanie: Postgres używa operatora || do łączenia łańcuchów, a nie do znaku plus (+). – alfoks