我的存储过程有2个输入值,1个返回值
如下:
ALTER    proc tea_jiaoshi_limit_onstu_id
(@stu_id char(10),@tea_id char(10),@return_message nvarchar(20) output
)
as
if @tea_id in (
select b.tea_id
from stu_info a inner join mancou_info b
on a.stu_class=b.stu_class
where a.stu_id=@stu_id)begin
set @return_message='true'
select @return_message
end
else
begin
set @return_message='false'
select @return_message
end
程序中:
string strConnection="server=(local);database=temp;uid=sa;password=;";
SqlConnection objConnection = new SqlConnection(strConnection);
SqlCommand objCommand = new SqlCommand("tea_jiaoshi_limit_onstu_id",objConnection);
objCommand.CommandType=CommandType.StoredProcedure;

//参数对象
SqlParameter objParameter=new SqlParameter("@return_message",SqlDbType.NVarChar,20);
objParameter.Direction=ParameterDirection.Output;
objCommand.Parameters.Add(objParameter);SqlParameter objParameter_stu_id=new SqlParameter("@stu_id",SqlDbType.Char,10);
objParameter.Direction=ParameterDirection.Input;
objCommand.Parameters.Add(objParameter_stu_id);
objParameter_stu_id.Value=TextBox1.Text;
SqlParameter objParameter_tea_id=new SqlParameter("@tea_id",SqlDbType.Char,10);
objParameter.Direction=ParameterDirection.Input;
objCommand.Parameters.Add(objParameter_tea_id);
objParameter_tea_id.Value=label_user.Text;
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();Response.Write("ssss"+objParameter.Value+"xxxx");
为什么说:
过程 'tea_jiaoshi_limit_onstu_id' 需要参数 '@return_message',但未提供该参数。 
求助
谢谢

解决方案 »

  1.   

    SqlParameter objParameter_stu_id=new SqlParameter("@stu_id",SqlDbType.Char,10);
    objParameter.Direction=ParameterDirection.Input;        为什么这里要改变objParameter?
    objCommand.Parameters.Add(objParameter_stu_id);
    objParameter_stu_id.Value=TextBox1.Text;
    SqlParameter objParameter_tea_id=new SqlParameter("@tea_id",SqlDbType.Char,10);
    objParameter.Direction=ParameterDirection.Input;    为什么这里要改变objParameter?
    objCommand.Parameters.Add(objParameter_tea_id);
    objParameter_tea_id.Value=label_user.Text;
      

  2.   

    SqlParameter objParameter=new SqlParameter("@return_message",SqlDbType.NVarChar,20);
    objParameter.Direction=ParameterDirection.Output;
    objCommand.Parameters.Add(objParameter);SqlParameter objParameter_stu_id=new SqlParameter("@stu_id",SqlDbType.Char,10);
    objParameter.Direction=ParameterDirection.Input;
    objCommand.Parameters.Add(objParameter_stu_id);
    objParameter_stu_id.Value=TextBox1.Text;
    SqlParameter objParameter_tea_id=new SqlParameter("@tea_id",SqlDbType.Char,10);
    objParameter_tea_id.Direction=ParameterDirection.Input;
    objCommand.Parameters.Add(objParameter_tea_id);
    objParameter_tea_id.Value=label_user.Text;objParameter.Direction=ParameterDirection.Input;
    ==>
    objParameter_tea_id.Direction=ParameterDirection.Input;
    两个都是;