你在参数声明中使用了什么大小的varchar(MAX)?

在ADO.NET中创build参数时,我通常会设置列大小

但是,如果列是VARCHAR(MAX)我使用什么大小?

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

在这种情况下,你使用-1。

对于我们这些谁没有看到由米哈尔Chaniewski -1完整的代码行:

 cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text"; 

最大SqlDbType.VarChar大小是2147483647。

如果你会使用一个通用的oledb连接,而不是SQL,我发现这里也有一个LongVarChar数据types。 它的最大尺寸是2147483647。

 cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string"; 

你不需要通过size参数,只要声明Varchar就已经知道它是MAX就好了:

 cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";