zoukankan      html  css  js  c++  java
  • 为处理 InvalidOperationException. String[1]: the Size property has an invalid size of 0.

    调用C#程序中存储过程时,抛出异常 String[1]: the Size property has an invalid size of 0.

    很郁闷,在Sql Manage studio中执行存储过程时,发现了一个问题: 

    代码
    DECLARE @return_value int,
    @MeterAddress nvarchar(50)

    EXEC @return_value = [dbo].[upGetMeterAddressBySupplierCode]
    @SupplierCode = N'0000000001',
    @MeterAddress = @MeterAddress OUTPUT

    SELECT @MeterAddress as N'@MeterAddress'

    它的返回值是有长度的,而在存储过程的定义中之使用了SqlDbType.NVarChar,并没有设置长度。所以导致报错;

    案例:

    出现该问题的存储过程有一个特征,就是存在 Varchar 或者 Nvarchar 类型的 out 参数

    调用时对该参数的定义类似于
    SqlParameter para = new SqlParameter("@paraname", SqlDbType.NVarChar);


    解决办法:

    该out参数必须有一个指定的长度,因此,应进行类似下面的初始化:
    SqlParameter para = new SqlParameter("@paraname", SqlDbType.NVarChar, size);

  • 相关阅读:
    冲刺第一天
    就用户界面和体验评价搜狗输入法
    学习进度条10
    典型用户及用户场景描述
    学习进度条09
    冲刺阶段第八天
    对石家庄铁道大学网站的UI分析
    学习进度条(第八周)
    冲刺阶段第七天
    冲刺阶段第六天
  • 原文地址:https://www.cnblogs.com/lingfengchencn/p/1857325.html
Copyright © 2011-2022 走看看