Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中添加最大值的SQL参数#_C#_Sql Server - Fatal编程技术网

C# 如何在C中添加最大值的SQL参数#

C# 如何在C中添加最大值的SQL参数#,c#,sql-server,C#,Sql Server,使用SqlParamaterCollection.Add添加到.NET C中的参数集合时,确定参数的大小 不包括参数的大小,但其使用示例显示了在使用方法后立即设置的大小 在这两种情况下,文档没有指定如何将参数大小最大化为“max”值。例如,当插入到NVARCHAR(MAX)类型的列中时 如何做到这一点 // ? below indicates confusion on how to make this MAX. // it only takes type "int" var parameter

使用
SqlParamaterCollection.Add
添加到.NET C中的参数集合时,确定参数的大小

不包括参数的大小,但其使用示例显示了在使用方法后立即设置的大小

在这两种情况下,文档没有指定如何将参数大小最大化为“max”值。例如,当插入到
NVARCHAR(MAX)
类型的列中时

如何做到这一点

// ? below indicates confusion on how to make this MAX.
// it only takes type "int"
var parameter = new SqlParameter("@param1", SqlDbType.NVarChar, ?);
command.Parameters.Add(parameter);

只需使用
VARCHAR
NVARCHAR
而不指定大小,默认为MAX,但
VARCHAR
的大小不应超过8000,而
NVARCHAR
的大小不应超过4000。这是一个有趣的问题,但为什么需要提供
MAX
?为什么不获取字符串的长度并使用它呢?如果没有输出方向,则不需要设置大小。使用-1。你能提供这些限制的文件吗?我不记得看到过。这是SQL server中的限制,尝试使用
REPLICATE
插入任何大于该大小的字符串,它会抛出错误。实际上,MAX表示列数据存储在行外,而数字(VARCHAR最多8000,NVARCHAR最多4000)将存储在行内。这对于定义表结构比存储过程更重要。但MAX实际上意味着可以返回2GB的数据(至少对于VARCHAR-)。