Ich habe eine postgresql DB und ich möchte die Tabelle "Locations" abfragen, um die Namen aller Standorte abzurufen, die den Namen, der vom Benutzer eingegeben wurde, entsprechen. Der Spaltenname ist "LocationName". Ich benutze ASP.net mit C#.Like-Anweisung für npgsql mit Parameter
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();
Ich erhalte diese Ausnahme:
Npgsql.NpgsqlException: ERROR: 42703: column "%((E'My place'))%" does not exist
Ich habe versucht, die Abfrage ausgeführt wird, ohne% zu verwenden, aber es funktioniert nicht. Ich habe auch versucht + und & wie unten angegebenen, aber das hat nicht funktioniert entweder:
string query = "Select \"LocationName\" from \"Locations\" where \"LocationName\" LIKE '%'+ :loc_name +'%'";
mit der obigen Zeile, erhalte ich diese Ausnahme:
Npgsql.NpgsqlException: ERROR: 42725: operator is not unique: unknown + unknown
Für Ihre letzte Abfrage: postgres verwendet den Operator || zum Verketten von Strings, nicht das Pluszeichen (+). – alfoks