如有一个存储过程
create procedure sp_out(out t int )
begin
   set t = 10 ;
end 现在我怎么在程序里面取到值呢:
我用
.....
cmd.connection = conn;
cmd.CommandText = "sp_out";
MySqlParameter p = new MySqlParameter("?t",MySqlDbType.int32);
p.direction = ParameterDirection.Output;
cmd.parameters.add(p);
cmd.ExecuteNonQuery();Response.Write(cmd.parameters["?t"].value)  //但是这样取不到值是怎么回事啊.
为什么取不到值,在Sql server里面是完全可以取到值的,但在MySql里面就是取不到。.郁闷了。谁知道帮忙说下.谢谢。.

解决方案 »

  1.   

    是不是没有添加如下语句:
    cmd.CommandType = CommandType.StoredProcedure;我的测试通过了。
      

  2.   

    cmd.CommandType   =   CommandType.StoredProcedure; 这句是一定加了吧,我没次都是显示一个空值
    你是在mySql下面可以取到值吗???/
    没设置别的属性吗?/?
    我怎么就不行,难道是Rp问题.我在试试/
      

  3.   

    cmd.Parameters.Add("@t",SqlDbType.Int);
    cmd.Parameters[0].Direction=ParameterDirection.Output;在cmd.ExecuteNonQuery();之后int result=Convert.ToInt32(cmd.Parameters[0].Value);
      

  4.   

    还加上这句 cmd.CommandType   =   CommandType.StoredProcedure; 
    你不知道的地方多去看看MSDN 那上面有例子的
      

  5.   

    对,我确实在MySql下进行了测试,使用的你的上面的存储过程的代码,没有问题。