Es gibt mehrere Überladungen für die Funktion sqlcommand.Parameters.Add(...). Einige von ihnen nehmen keine Größe an, andere schon. Welche Größen sind standardmäßig eingestellt? Ist es sicher, keine Parametergrößen zu setzen? Beeinträchtigt es die Leistung?
Antworten
Zu viele Anzeigen?から SqlParameter.Size-Eigenschaft Doku
Wenn nicht ausdrücklich festgelegt, wird die Größe aus der tatsächlichen Größe des angegebenen Parameterwerts abgeleitet.
Es gibt eine großartige Antwort von Peter Wone auf 293315 in dem ausführlicher beschrieben wird, was das eigentlich bedeutet
Es ist möglich, einen Parameter, der zu groß für den Datentyp der Datenbank ist, von .Net-Code an SQL Server zu senden. Wenn Sie die Größe beim Erstellen des Parameters in Ihrem .Net-Code festlegen, wird eine Ausnahme ausgelöst, wenn ein zu großer Wert gesendet wird. So wissen Sie früher Bescheid und verschwenden den Datenbankaufruf nicht.
Alternativ können Sie auch eine maximale Anzahl von Zeichen für bestimmte Textfelder festlegen. Die Datenbank könnte Nachnamen mit 400 Zeichen zulassen, Sie wollen aber nur varchar 100.
Die Eigenschaft des Parameters Nullable ist ähnlich. Sie ist optional, aber wenn der Parameter im Sproc-Aufruf nicht null sein kann, wird das Problem in Ihrem .Net-Code schneller auffallen, wenn Sie ihn nicht nullbar machen.