Какой размер вы используете для varchar (MAX) в объявлении параметров? - PullRequest
173 голосов
/ 10 июня 2009

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

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

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

Ответы [ 4 ]

264 голосов
/ 10 июня 2009

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

46 голосов
/ 18 апреля 2013

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

cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";
3 голосов
/ 05 октября 2016

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

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

cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string";
2 голосов
/ 16 мая 2017

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

cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...