ist meine manuelle Abfrage Arbeit in SQL zum MSSQL:gespeicherte Prozedur mit Array-Parameter csharp Diese
SELECT * FROM Accounts where Phone in ('05763671278','05763271578','04763125578')
wie kann ich Parameter wie folgt aus csharp auf gespeicherte Prozedur erhalten?
Ich habe ein Telefon-Array in C#. Ich bekomme dieses Array von Parametern aus einer Ansicht (Multi Kontrollkästchen aktiviert). Dies ist meiner Ansicht nach:
<td><input type="checkbox" class="CheckboxClass" value="'@item.Phones'"/></td>
Das ist mein Controller-Aktion:
public ActionResult SendSMSOrMail(string[] values){
// this give "'05763671278','05763271578','04763125578'"
string numbers = string.Join(",", values);
// ...
utility.cmd.Parameters.Add("@numbers", numbers);
// ...
}
Aber das Ergebnis ist null
. Was ist falsch? Ich möchte Ergebnis aller Aufzeichnungen erhalten, die diese Telefone enthalten.
Die Parameter werden in sequenzieller Reihenfolge hinzugefügt und benötigen keinen Namen. Also benutze: utility.cmd.Parameters.Add ("05763671278"); – jdweng
Sie können eine IN-Liste nicht parametrisieren, sondern stattdessen einen Table-Valued-Parameter verwenden, z. https://stackoverflow.com/questions/5595353/how-to-pass-table-value-parameters-to-stored-procedure-from-net-code/ https://stackoverflow.com/questions/2377506/pass- array-parameter-in-sqlcommand –
Verwenden Sie [Tabellenwertparameter] (https://docs.microsoft.com/en-us/sql/relational-databases/tables/use-table-valued-parameters-database-engine) – Sami