Wie erstelle ich NVarchar (max) Sqlparameter in C #? [Duplikat

Diese Frage hat hier bereits eine Antwort:

Welche Größe verwenden Sie für varchar (MAX) in Ihrer Parameterdeklaration? 4 Antworten

Ich habe den folgenden Code, um eine DataTable mithilfe einer gespeicherten Prozedur und durch Eingabe eines Zeichenfolgenparameters @JobNumbers abzurufen, der eine dynamisch erstellte Zeichenfolge von Jobnummern ist (und daher die Länge unbekannt ist):

using (SqlConnection connection = new SqlConnection(con))
        {
            SqlCommand cmd = new SqlCommand("dbo.Mystoredprocedure", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@JobNumbers", SqlDbType.VarChar, 4000);
            cmd.Parameters["@JobNumbers"].Value = JobNumber;

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            connection.Open();
            da.Fill(JobDetails);
        }

Wie Sie sehen können, habe ich den JobNumber-Parameter derzeit auf eine Länge von 4000 festgelegt. Dies sollte ausreichen, um etwa 500 Jobnummern aufzunehmen, und sollte ausreichen. Es besteht jedoch die Möglichkeit, dass es gelegentlich mehr braucht. Ich habe mich gefragt, ob es eine Möglichkeit gibt, den Parameter auf den entsprechenden SQL-Parametertyp von nvarchar (max) zu setze

Ich habe mir verschiedene ähnliche Fragen angeschaut Was ist die beste Methode, um Parameter an SQLCommand zu übergeben?) aber keiner sagt spezifisch, ob Sie dies tun können (oder nicht). Zweitens ist es sogar notwendig, dies zu tun, wenn ich den @ JobNumber-Parameter in der gespeicherten Prozedur auf nvarchar (max) setze und daher vermutlich die Länge in C # überhaupt nicht festlegen müsste? Wenn ich dies tue, hat dies potenzielle Leistungsprobleme, wie in dieser Frage vorgeschlagen.Wann sollten beim Hinzufügen von SqlCommand-Parametern "SqlDbType" und "size" verwendet werden??

Antworten auf die Frage(1)

Ihre Antwort auf die Frage