我在本网站上看到的所有相关主题都讨论了存储过程等。我有一个C#程序接收一个字符串(从哪里,可能是文件或上传不重要)并尝试将其插入varchar(MAX)
列。我的代码是这样的:
command.Parameters.AddWithValue("@pxslt", mer.XsltTemplate);
它引发了一个错误:
字符串或二进制数据将被截断。
我把它改为:
command.Parameters.Add("@pxslt", SqlDbType.).Value = mer.XsltTemplate;
但它仍会引发同样的错误。
解决方案是什么?我的字符串大小约为8100个字符。
答案 0 :(得分:3)
您可以使用以下语法:
command.Parameters.Add("@pxslt", SqlDbType.VarChar, -1).Value = mer.XsltTemplate;
注意:-1等于(MAX)。
答案 1 :(得分:0)
我明白了。由于另一个字段,错误引发。这是一个字段varchar(15),程序试图插入一个包含20个字符的字符串。我还注意到varchar(max)即使没有强制转换为DbType也能正常工作。