在参数声明中,varchar(MAX)的大小是多少?

时间:2009-06-10 01:08:02

标签: c# sql-server-2008 ado.net

我通常在ADO.NET

中创建参数时设置列大小

但如果列为VARCHAR(MAX),我会使用什么尺寸?

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

5 个答案:

答案 0 :(得分:263)

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

答案 1 :(得分:46)

对于我们这些没有被Michal Chaniewski看到-1的人,完整的代码行:

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

答案 2 :(得分:3)

最大SqlDbType.VarChar大小为2147483647。

如果您使用通用的 oledb连接而不是sql,我发现here还有一个LongVarChar数据类型。它的最大尺寸是2147483647。

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

答案 3 :(得分:2)

您不需要传递size参数,只需声明Varchar已经知道它是MAX就像:

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

答案 4 :(得分:0)

如果您执行以下操作:

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

大小将取自“一些大文本”。长度

当它是输出参数时,返回的字符数少于您输入的字符数,这可能会成为问题。