首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

String[一]: Size 属性具有无效大小值 0。是为什么

2013-09-05 
String[1]: Size 属性具有无效大小值 0。是为什么//找回用户密码public bool ForgetPassword(string userna

String[1]: Size 属性具有无效大小值 0。是为什么


        //找回用户密码
        public bool ForgetPassword(string username) {
            //获取一个已配置的DbCommand对象
            DbCommand comm = Common.GenericDataAccess.CreateCommand();
            //设置存储过程名称
            comm.CommandText = "sp_MemberForgetPassword";
            // 创建新的参数
            DbParameter param = comm.CreateParameter();
            param.ParameterName = "@Username";
            param.Value = username;
            param.DbType = DbType.String;
            comm.Parameters.Add(param);
            // 创建新的参数
            param = comm.CreateParameter();
            param.ParameterName = "@UsernameOutput";
            param.Direction = ParameterDirection.Output;
            param.DbType = DbType.String;
            comm.Parameters.Add(param);
            // 创建新的参数
            param = comm.CreateParameter();
            param.ParameterName = "@Email";
            param.Direction = ParameterDirection.Output;
            param.DbType = DbType.String;
            comm.Parameters.Add(param);
            // 创建新的参数
            param = comm.CreateParameter();
            param.ParameterName = "@Password";


            param.Direction = ParameterDirection.Output;
            param.DbType = DbType.String;
            comm.Parameters.Add(param);
            // 创建新的参数
            param = comm.CreateParameter();
            param.ParameterName = "@Return";
            param.Direction = ParameterDirection.ReturnValue;
            param.DbType = DbType.Int32;
            comm.Parameters.Add(param);

            Common.GenericDataAccess.ExecuteNonQuery(comm);
            if (Int32.Parse(comm.Parameters["@Return"].Value.ToString()) == 1) {
                //发送邮件到用户邮箱

                return true;
            }
            else {
                return false;
            }
        }


[解决办法]
DbType不能指定,但是你可以强制类型转换到对应的数据库类型上,例如你这里要转换到SqlDbType后设置,或者用反射来设置Size,对于输出型参数,字符串必须设置长度,否则默认长度0,自然要报错,楼上看不懂就别来掺合。

热点排行