我的存储过程:ALTER   proc tea_jiaoshi_limit_onstu_id
(@stu_id char(10)='Q0152100',@tea_id char(10)='t03',@returnmessage 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 @returnmessage='aaaa'
end
else
begin
set @returnmessage='bbbb'
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("@returnmessage",SqlDbType.NVarChar,20);
objCommand.Parameters.Add(objParameter);
objParameter.Direction=ParameterDirection.ReturnValue;

Response.Write(objParameter.Value);为什么写不出objParameter.Value
高手帮忙

解决方案 »

  1.   

    objParameter.Direction=ParameterDirection.ReturnValue;
    改成
    objParameter.Direction=ParameterDirection.Output
      

  2.   

    objCommand.Parameters.Add(objParameter);
    objParameter.Direction=ParameterDirection.ReturnValue;
    =====>objParameter.Direction=ParameterDirection.ReturnValue;
    objCommand.Parameters.Add(objParameter);
      

  3.   

    objCommand.Parameters.Add(objParameter);
    这句放在
    objParameter.Direction=ParameterDirection.Output;
    后面
      

  4.   

    SqlParameter objParameter=new SqlParameter("@returnmessage",SqlDbType.NVarChar,20,ParameterDirection.Output,true,0,0,"",DataRowVersion.Default,null)
    Response.Write(objParameter[0].Value.ToString());这样再试试。
      

  5.   

    换过了
    不行
    是不是 objCommand.ExecuteReader(); 问题
    是的话,这个应该赋给谁呢?
      

  6.   

    TO:conghui(^_^) C:\Inetpub\wwwroot\score\WebForm4.aspx.cs(489): 无法将带 [] 的索引应用于“System.Data.SqlClient.SqlParameter”类型的表达式
      

  7.   

    你的程序在哪执行的存储过程?
    cmd.ExecuteNonQuery();有吗?我没有看到-_-
      

  8.   

    好像没执行,不知道放哪?
    用objCommand.ExecuteReader(); ?
    还是别的?
    指教
    谢谢
      

  9.   

    objCommand.ExecuteReader(); 这句放到Response.Write(objParameter.Value);
    前面就可以了。
      

  10.   

    另外为了类型一致你最好这么写
    Response.Write(objParameter.Value.ToString());
    因为你上面定义objParameter的类型是sqlserver的。
      

  11.   

    看错了,你这样的sql当然是用cmd.ExecuteNonQuery();了
      

  12.   

    放进去后
    没有任何值显示
    如:Response.Write("saaaaa"+objParameter.Value+"bbbb");
    显示:saaaaabbbb a和b之间无任何东西
    不知道怎么办
    关注