我通常在ADO.NET中创建参数时设置列的大小。
但是,如果列的类型是VARCHAR(MAX),我该使用多大的大小呢?
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
我通常在ADO.NET中创建参数时设置列的大小。
但是,如果列的类型是VARCHAR(MAX),我该使用多大的大小呢?
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
对于那些没有看过Michal Chaniewski写的-1的人,完整的代码行:
cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";
最大SqlDbType。VarChar大小为2147483647。
如果要使用通用的oledb连接而不是sql,我发现这里还有一个LongVarChar数据类型。它的最大大小是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";
如果你这样做:
cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";
大小将取自“一些大文本”。长度
当它是一个输出参数时,这可能是有问题的,你得到的字符比你输入的字符少。