------------------------------------------------------CREATE PROCEDURE  proc_RecordCount
(
@rsCount int output )AS EXEC ('select @rsCount=count(id) from BusinessChance' )
GO'---------------------------------------------------
我想返回@rsCount 我下面这样写正确吗?SqlConnection MyConn=new SqlConnection(conn_Default);
SqlCommand cmd = new SqlCommand("proc_RecordCount",MyConn);MyConn.Open();// 废置SqlCommand的属性为存储过程
cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.Add("@rsCount", SqlDbType.Int, 4);cmd.Parameters["@rsCount"].Direction   =   ParameterDirection.Output;   

cmd.ExecuteNonQuery();System.Web.HttpContext.Current.Response.Write(cmd.Parameters["@rsCount"].Value);MyConn.Close();
MyConn.Dispose();
我想返回@rsCount 我上面这样写正确吗?

解决方案 »

  1.   

    cmd.Parameters["@rsCount"].Direction   =ParameterDirection.InputOutput;;没有想明白你的存储过程为什么那样写,
    直接CREATE PROCEDURE  proc_RecordCount
    (
    @rsCount int output )AS select @rsCount=count(id) from BusinessChanceGO不行么?
      

  2.   

    存储过程做一下修改
    CREATE PROCEDURE  proc_RecordCount
         @rsCount int output
    AS 
         select @rsCount=count(id) from BusinessChance
    GOC#代码不用改动
      

  3.   

    直接select就行了,整这么复杂
      

  4.   

    楼主你先改下存储,运行试试吧,这么多人帮你想办法,直接Select,Exe确实有问题
      

  5.   

    cmd.Parameters["@rsCount"].Value取值应该在MyConn.Close()之后,不然你的Procc还没有返回,@rsCount还没有被赋值
      

  6.   

    为什么要加EXEC这个哦!
    真不明白呀!
      

  7.   

    cmd.Parameters["@rsCount"].Direction   =   ParameterDirection.Output;   这一句 ,前面项目中我这样用是得不到返回值必须要用cmd.Parameters["@rsCount"].Direction   =ParameterDirection.InputOutput;