zoukankan      html  css  js  c++  java
  • 关于存储过程得传出参数的错误

    --功能描述:返回当前的用户的昵称
    --创建者: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

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

  • 相关阅读:
    css3 文本超出后出现省略号
    Bootstrap 开关(switch)控件需要注意的问题
    angularJs 使用中遇到的问题小结【一:关于传参】
    ctrl+enter提交留言
    div a块状布局
    模态框 快速选定合适的布局
    ionic 项目分享No.2——简化版【转】
    jquery判断div是否显示或者隐藏
    phpsotrm 设置命名空间
    win10 cmd 替换 powershell
  • 原文地址:https://www.cnblogs.com/suneryong/p/1120887.html
Copyright © 2011-2022 走看看