用存储过程进行分页时,取输入参数始终为空串。代码如下:
// 取数据集方法,并返回pageCount(总页数)
   public  DataSet getResult(string currentPage, ref string pageCount)
        {
            try
            {
                //清空数据集
                ds.Clear();
                string sql = "pageHandler";
               //打开连接
                OpenConnection();
                cmd = new SqlCommand(sql,conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@pageSize", SqlDbType.Int).Value = 5;
                cmd.Parameters.Add("@currentPage", SqlDbType.Int).Value = int.Parse(currentPage);
                cmd.Parameters.Add("@pageCount", SqlDbType.Int);
                cmd.Parameters["@pageCount"].Direction = ParameterDirection.Output;
                sda = new SqlDataAdapter(cmd);
                pageCount = cmd.Parameters["@pageCount"].Value.ToString();
                sda.Fill(ds);
                            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                CloseConnection();
            }            return ds;        }
   调用方法如下:
      protected void BindData()
    {
        string pageCount = "";
        DataAccess.Class1 dc = new DataAccess.Class1();
        DataSet ds = dc.getResult(ViewState["currentPage"].ToString(), ref pageCount);        ViewState["pageCount"] = pageCount;
        lbCurrentPage.Text = ViewState["currentPage"].ToString();
        lbPageCount.Text = ViewState["pageCount"].ToString();
        Repeater1.DataSource = ds.Tables[0].DefaultView;
        Repeater1.DataBind();
    }   取出来的pageCount始终为初始值,经过调试,发现运行到 pageCount = cmd.Parameters["@pageCount"].Value.ToString();这条语句时就已经把空值赋值了.....存储过程在sqlserver2008里面调试没问题,能正确返回pageCount,各位帮忙下