Size属性的大小为0

RuM*_*MoR 37 c# sql-server asp.net stored-procedures sqlparameter

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

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar);
job1.Direction = ParameterDirection.Output;
Run Code Online (Sandbox Code Playgroud)

但是出现此错误:

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

mar*_*c_s 69

在指定参数时需要定义长度varchar:

SqlParameter job1 = cmd2.Parameters.Add("@job", SqlDbType.VarChar, 50);
Run Code Online (Sandbox Code Playgroud)

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

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

  • 它被称为“Size”属性,以防您需要像我一样指定它 (2认同)

小智 6

是的,必须定义varchar/nvarchar数据类型的长度,如下所示。

cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction =
    ParameterDirection.Output;
Run Code Online (Sandbox Code Playgroud)

  • 这并没有为 5 年前的答案添加任何有用的内容。 (3认同)

tno*_*007 5

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

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

在此输入图像描述