我通常在ADO.NET
中创建参数时设置列大小但如果列为VARCHAR(MAX)
,我会使用什么尺寸?
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
答案 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";
大小将取自“一些大文本”。长度
当它是输出参数时,返回的字符数少于您输入的字符数,这可能会成为问题。