Использование очень длинных (более 10000 символов) строк в качестве значения SqlParameter

Я пытаюсь выполнить команду вставки в базу данных, и один из столбцов имеет тип nvarchar (MAX). Команда Insert создается с использованием класса .NET SqlCommand, и каждый из параметров представлен одним объектом SqlParameter.

Моя команда всегда выполняется, но когда я передаю строку большой длины (10000+ символов), которая используется в качестве значения для SqlParameter, сопоставленного столбцу типа nvarchar (MAX) после вставки, этот конкретный столбец остается пустым. Повторяю, исключение не генерируется, команда INSERT выполняется, но столбец пуст.

Следующие примеры показывают, как я пытался создать параметр:

// message is the large string variable
// first solution
insertCommand.Parameters.Add("@message", SqlDbType.NVarChar, -1);

// second solution
insertCommand.Parameters.Add("@message", SqlDbType.NVarChar, message.Length);

// third solution
insertCommand.Parameters.Add("@message", SqlDbType.NVarChar, message.Length * 2);

Ни одно из этих решений не дало результата. Если кто знает, в чем проблема, подскажите пожалуйста.

Я использую MS SQL Server 2008.

Заранее благодарим.

7
задан vukashin 15 September 2010 в 14:35
поделиться