Size属性的大小为0

时间:2011-12-25 11:05:32

标签: c# asp.net sql-server stored-procedures sqlparameters

我在社交网络上工作,我的一个程序返回一个VARCHAR输出。 所以这就是我写的:

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar);
job1.Direction = ParameterDirection.Output;

但是出现了这个错误:

  

String [1]:Size属性的大小无效。

3 个答案:

答案 0 :(得分:57)

指定varchar参数时,您需要定义长度

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar, 50);

您应该使用SQL Server存储过程中定义的相同长度。

顺便说一句:如果您的存储过程也没有定义长度(类似@job VARCHAR OUTPUT) - 那么您已经定义了一个1个字符长度的varchar字符串......

答案 1 :(得分:1)

是的,必须定义[0] [1] [2] / varchar数据类型的长度,如下所示。

nvarchar

答案 2 :(得分:0)

如果使用的是Dapper,则为参数传递了空值,其中期望的输入是字符串。

要查找有问题的值及其参数,请在调试会话期间检查Dapper DynamicParameters对象,然后打开要引用的参数。

enter image description here