Gewusst wie: übergeben Sie parameter an die sql 'in' - Anweisung?
Ich möchte diese Abfrage:
select * from products where number in ('123', '234', '456');
aber ich finde keine Beispiel für achiving diese mit Npgsql und NpgsqlParameter. Ich habe versucht, wie diese:
string[] numbers = new string[] { "123", "234" };
NpgsqlCommands cmd = new NpgsqlCommands("select * from products where number in (:numbers)");
NpgsqlParameter p = new NpgsqlParameter("numbers", numbers);
command.Parameters.Add(p);
aber es hat nicht funktioniert 😉
InformationsquelleAutor Adrian Serafin | 2011-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben Sie es als ein array:
array
variable solltenumbers
im parameter Wertehrlich gesagt, ist es eine lange Zeit, seit ich zuletzt verwendet
NPgSQL
und noch nicht einmal eineVS
installiert, um zu überprüfen 🙂ist die syntax OK oder Sie hatte, um es zu korrigieren? Ich kann nicht überprüfen.
Verwenden NpgsqlDbType | NpgsqlDbType.Numeric wenn Sie übergeben wird ein int[]. Auch ich denke, dass die $ - zahlen nicht :die zahlen? Ansonsten ist die syntax für mich gearbeitet.
InformationsquelleAutor Quassnoi
Müssen Sie dynamisch erstellen Sie Ihre Befehls-string - Schleife, mit Ihrer ersten parameter als :num0, die zweite als :num1 usw. Wenn Sie Hinzugefügt haben alle von Ihnen, entfernen Sie das Letzte Zeichen "," und ersetzen Sie es mit ")".
InformationsquelleAutor Mr Shoubs
Zusätzlich zu @Quassnoi Antwort füge ich diese ein, um zu zeigen, wie wir es getan im echten code.
Warnung! Diese arbeiten code ist aus echtem Projekt und kann Schaden Ihre schöne Ansätze!
InformationsquelleAutor Arman Hayots