Ho un DB postgresql e voglio interrogare la tabella "Posizioni" per recuperare i nomi di tutte le posizioni che corrispondono al nome inserito dall'utente. Il nome della colonna è "LocationName". Sto usando ASP.net con C#.dichiarazione simile per npgsql utilizzando il parametro
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();
ottengo questa eccezione:
Npgsql.NpgsqlException: ERROR: 42703: column "%((E'My place'))%" does not exist
Ho provato a fare funzionare la query senza utilizzare%, ma non funziona. Ho anche provato con + e & come riportati qui di seguito, ma che non ha funzionato neanche:
string query = "Select \"LocationName\" from \"Locations\" where \"LocationName\" LIKE '%'+ :loc_name +'%'";
con la linea di cui sopra, ottengo questa eccezione:
Npgsql.NpgsqlException: ERROR: 42725: operator is not unique: unknown + unknown
Per l'ultima query: postgres sta utilizzando l'operatore || per concatenare le stringhe, non il più (+). – alfoks