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个字符长度的字符串......
小智 6
是的,必须定义varchar/nvarchar数据类型的长度,如下所示。
cmd.Parameters.Add("@Description", SqlDbType.VarChar, 150).Direction =
ParameterDirection.Output;
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Dapper,则您已为参数传递了一个空值,其中预期输入是一个字符串。
要查找有问题的值及其参数,请在调试会话期间检查 Dapper DynamicParameters 对象并打开索引引用的参数。