Как создать NVarchar (max) Sqlparameter в C #? [Дубликат]

На этот вопрос уже есть ответ:

Какой размер вы используете для varchar (MAX) в объявлении параметров? 4 ответа

У меня есть следующий код для извлечения DataTable с использованием хранимой процедуры и ввода строкового параметра @JobNumbers, который представляет собой динамически создаваемую строку номеров заданий (и, следовательно, длина неизвестна):

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);
        }

Как вы можете видеть, я в настоящее время установил для параметра JobNumber длину 4000, которой должно быть достаточно, чтобы занять около 500 номеров работ, и этого должно быть достаточно. Тем не менее, существует вероятность того, что ему может понадобиться больше в нечетном случае. Итак, мне было интересно, есть ли способ установить параметр эквивалентный тип параметра sql nvarchar (max)?

Я посмотрел на разные похожие вопросы Как лучше всего передать параметры в SQLCommand?) но никто не говорит конкретно, можете ли вы (или не можете) сделать это. Во-вторых, нужно ли это делать, даже если для параметра @JobNumber в хранимой процедуре я установил значение nvarchar (max) и, следовательно, предположительно, мне вообще не нужно было бы устанавливать длину в C #? Если я сделаю это, у него будут потенциальные проблемы с производительностью, как предлагается в этом вопрос Когда следует использовать SqlDbType и size при добавлении параметров SqlCommand??

Ответы на вопрос(1)

Ваш ответ на вопрос