我试图执行到数据库中的插入命令,其中一列的类型为nvarchar(MAX)。插入命令是使用.NET SqlCommand类创建的,每个参数都由一个SqlParameter对象表示。使用非常长(10000+个字符)的字符串作为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.
在此先感谢。
您是否设置了值?我看到的只是你创建一个参数,但没有分配任何值。 – 2010-09-15 17:51:50