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-)。