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

Обычно я устанавливаю размер столбца при создании параметра в ADO.NET

Но какой размер я использую, если столбец VARCHAR(MAX)?

cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;

Ответ 1

В этом случае вы используете -1. ​​

Ответ 2

Для тех из нас, кто не видел -1 Михал Чаневски, полная строка кода:

cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";

Ответ 3

Максимальный размер SqlDbType.VarChar равен 2147483647.

Если вы использовали общее oledb соединение вместо sql, я нашел здесь, также существует тип данных LongVarChar, Его максимальный размер составляет 2147483647.

cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string";

Ответ 4

Вам не нужно передавать параметр размера, просто объявить Varchar уже понимает, что это MAX нравится:

cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";

Ответ 5

Если вы делаете что-то вроде этого:

    cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";

размер будет взят из "большого текста". Длина

Это может быть проблематично, когда в качестве выходного параметра вы получаете не больше символов, чем вы вводите в качестве ввода.