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);

  • 相关阅读:
    Redis之分布式锁的使用
    Redis之lua脚本
    Redis 集群的水平扩缩容
    Redis集群搭建及原理
    Redis 的主从、哨兵架构
    CompletableFuture 使用介绍
    Spring Boot 2.x使用H2数据
    pom.xml
    nexus-staging-maven-plugin 踩坑
    安卓Hook折腾研究的笔记记录
  • 原文地址:https://www.cnblogs.com/lingfengchencn/p/1857325.html
Copyright © 2011-2022 走看看