• 关于存储过程得传出参数的错误


    --功能描述:返回当前的用户的昵称
    --创建者:SunEy
    --日期:2008-03-25
    alter Procedure Door_NetWorkDoorPlate_GetUserInfo
    @DoorID int,
    @UserName nvarchar(50) output
    as
    begin try
     select @UserName=UserName from DB_NetWorkDoorPlate where DoorPlateID=@DoorID
    return @UserName
    end try
    begin catch
     return @UserName

    end catch
    此存储过程返回值是string类型的, 

    #region 获取用户的昵称
        /// <summary>
        /// 获取用户的昵称
        /// </summary>
        /// <param name="DoorID">ID</param>
        /// <returns></returns>
        public static string GetUserName(int DoorID)
        {
            try
            {
                SqlParameter[] parameters = new SqlParameter[2];
                parameters[0] = new SqlParameter("@DoorID", DoorID);
                parameters[1] = new SqlParameter("@UserName", SqlDbType.NVarChar,50);

              //Size 属性具有无效大小值: 0 如果不指定string类型的传出参数的size就会出现此错误,但是如果是int类型的就不需要,

                parameters[1].Direction = ParameterDirection.Output;

                SqlHelper.ExecuteNonQuery(SqlHelper.DoorConnectionString, CommandType.StoredProcedure, "Door_NetWorkDoorPlate_GetUserInfo", parameters);

                string Temp = null;

                Temp = parameters[1].Value.ToString();

                if (Temp != null)
                {
                    return Temp;
                }
                else
                {
                    return null;
                }
            }
            catch (System.Exception e)
            {
                throw e;
            }
        }

        #endregion

    总结原因:传入参数可以不指定长度,直接给值,但传出的必须指定长度

  • 相关阅读:
    贝叶斯公式推导
    三种常量池
    SpringCloud使用Feign实现服务间通信
    springCloud配置本地配中心SpringCloudConfig
    SpringApplication执行流程
    调用shutdown.sh后出现could not contact localhost8005 tomcat may not be running报错问题
    TCP协议详解
    web.xml配置说明
    第一份offer
    博客CSS
  • 原文地址:https://www.cnblogs.com/suneryong/p/1120887.html
Copyright © 2020-2023  润新知