读书人

String[一]: Size 属性具有无效大小值

发布时间: 2013-09-05 16:02:07 作者: rapoo

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,自然要报错,楼上看不懂就别来掺合。

读书人网 >C#

热点推荐