问题“String[4]: the size property has an invalid size of 0”的解决

本文介绍了一种在C#程序中调用带有varchar类型out参数的存储过程时遇到的异常情况及其解决方法。异常表现为thesizepropertyhasaninvalidsizeof0。解决此问题的关键在于明确指定out参数的长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在调用C#程序中存储过程时,抛出奇怪的异常,描述为:String[4]: the size property has an invalid size of 0,看似与数据库操作无关,该存储过程中用到的parameter也都正确得进行了赋值。
google之后发现有不少人也都遇到过类似的问题,现对该问题及解决方法简要描述如下:
1、出现该问题的存储过程有一个特征,就是存在varchar类型的out参数,调用时对该参数的定义类似于
SqlParameter para = new SqlParameter("@paraname", DBType.String);
执行Excute时会抛出上述异常(注:网上有的人说是调用的Excute方法错误,应该调用ExcuteNonQuery而不是ExcuteScalar,自己验证了一下,不存在这个问题)
2、解决办法:该out参数必须有一个指定的长度,因此,应进行类似下面的初始化:
SqlParameter para = new SqlParameter("@paraname", DBType.String, size);

修改之后,问题解决
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值