如何通过C#代码在varchar(MAX)列中存储长字符串?

时间:2017-01-23 16:43:36

标签: c# sql-server insert varchar

我在本网站上看到的所有相关主题都讨论了存储过程等。我有一个C#程序接收一个字符串(从哪里,可能是文件或上传不重要)并尝试将其插入varchar(MAX)列。我的代码是这样的:

command.Parameters.AddWithValue("@pxslt", mer.XsltTemplate);

它引发了一个错误:

  

字符串或二进制数据将被截断。

我把它改为:

command.Parameters.Add("@pxslt", SqlDbType.).Value = mer.XsltTemplate;

但它仍会引发同样的错误。

解决方案是什么?我的字符串大小约为8100个字符。

2 个答案:

答案 0 :(得分:3)

您可以使用以下语法:

command.Parameters.Add("@pxslt", SqlDbType.VarChar, -1).Value = mer.XsltTemplate;

注意:-1等于(MAX)。

答案 1 :(得分:0)

我明白了。由于另一个字段,错误引发。这是一个字段varchar(15),程序试图插入一个包含20个字符的字符串。我还注意到varchar(max)即使没有强制转换为DbType也能正常工作。