读书人

引用存储过程中的输出参数出错请帮忙

发布时间: 2012-01-19 20:57:58 作者: rapoo

引用存储过程中的输出参数出错,请帮忙看看,谢谢
引用存储过程中的输出参数出错,请帮忙看看,谢谢


C#中的代码

SqlCommand aCommand = new SqlCommand( "LEM_USER_AUTHENTICATION ", conn);
aCommand.CommandType = CommandType.StoredProcedure;
aCommand.Parameters.Add(new SqlParameter( "@USER_ID ", SqlDbType.VarChar, 20));
aCommand.Parameters[ "@USER_ID "].Value = user_id;

aCommand.Parameters.Add(new SqlParameter( "@USER_PWD ", SqlDbType.VarChar, 20));
aCommand.Parameters[ "@USER_PWD "].Value = user_pwd;

aCommand.Parameters.Add(new SqlParameter( "@TYPE ", SqlDbType.Decimal));
aCommand.Parameters[ "@TYPE "].Direction = ParameterDirection.Output;

aCommand.Parameters.Add(new SqlParameter( "@F_LEM ", SqlDbType.Decimal));
aCommand.Parameters[ "@F_LEM "].Direction = ParameterDirection.Output;

aCommand.Parameters.Add(new SqlParameter( "@LP_INFO ", SqlDbType.VarChar, 200));
aCommand.Parameters[ "@LP_INFO "].Direction = ParameterDirection.Output;

aCommand.UpdatedRowSource = UpdateRowSource.None;

aCommand.ExecuteNonQuery();
aCommand.Dispose();
conn.Close();


int user_type = Convert.ToInt32(aCommand.Parameters[ "@TYPE "].Value.ToString());
string f_lem = aCommand.Parameters[ "F_LEM "].Value.ToString();
string lp_info = aCommand.Parameters[ "LP_INFO "].Value.ToString();



存储过程中的参数设置
@USER_IDVARCHAR(20) ,
@USER_PWDVARCHAR(20) ,
@TYPENUMERIC(2,0)=0OUTPUT,
@F_LEMNUMERIC(1,0) =0 OUTPUT,
@LP_INFO VARCHAR(200)= ' ' OUTPUT


[解决办法]
怎么有三个output?
[解决办法]
ommand.Parameters.Add(new SqlParameter( "@F_LEM ", SqlDbType.Decimal));里是Decimal的
是9位的
@F_LEMNUMERIC(1,0) =0 OUTPUT,里是numeric是返回的1位

好象不吧
[解决办法]
此 SqlParameterCollection 中未包含带有 ParameterName“F_LEM”的 SqlParameter
=========================================================================
F_LEM 创建未成功....
[解决办法]
aCommand.Parameters.Add(new SqlParameter( "@F_LEM ", SqlDbType.Decimal));
这里的@F_LEM名字必须和存储过程里的一样,你那里的是@F_LEMNUMERIC
[解决办法]
string f_lem = aCommand.Parameters[ "F_LEM "].Value.ToString();
换成string f_lem = aCommand.Parameters[ "@F_LEM "].Value.ToString();试试

读书人网 >C#

热点推荐