SqlConnection myConn = new SqlConnection(strConnection);        SqlCommand myCmd = new SqlCommand("sp_AnswerList", myConn);
        myCmd.CommandType=CommandType.StoredProcedure;        SqlParameter spParamenter;        //问题ID
        spParamenter = myCmd.Parameters.Add("@QID", SqlDbType.Int,4);
        myCmd.Parameters["@QID"].Value = Convert.ToInt32(Request.Params["QID"]);
        
        //每页行数
        spParamenter = myCmd.Parameters.Add("@pagesize", SqlDbType.Int,4);
        myCmd.Parameters["@pagesize"].Value = 3;        //显示第几页
        spParamenter = myCmd.Parameters.Add("@pageindex", SqlDbType.Int,4);
        myCmd.Parameters["@pageindex"].Value = this.AspNetPager1.CurrentPageIndex ;
        
        spParamenter = myCmd.Parameters.Add("@docount", SqlDbType.Int,4);
        myCmd.Parameters["@docount"].Value = 0;
        
        try
        {
            myConn.Open();            SqlDataReader dr = myCmd.ExecuteReader();            this.RepeaterAnswer.DataSource = dr;
            this.RepeaterAnswer.DataBind();            dr.Close();
            
        }
        catch (SqlException error)
        {
            Page.RegisterStartupScript("", "<script>alert('" + error.Message + "!');</script>");
        }
        finally
        {
            myConn.Close();
        } 
以上代码是一个函数,调用它来显示每一页的内容,由存储过程返回记录集,
现在返回的记录比如有6条,绑定后却是把第一条重复了6遍,我知道虽然reader是向前的,
但是这样应该是可以绑定成功的,以前也弄过,为什么这里不行了呢,高手给看看

解决方案 »

  1.   

    另外,这个错误捕获这一句 Page.RegisterStartupScript( " ",   " <script> alert( ' "   +   error.Message   +   "! '); </script> ");   报错,不加error.Message 直接写一句话作为提示的话就可以,请问大家是如何把error.Message显示出来的?
      

  2.   

    throw是什么意思啊?myConn.Open(); 
    SqlDataReader   dr   =   myCmd.ExecuteReader(); 
    this.RepeaterAnswer.DataSource   =   dr; 
    this.RepeaterAnswer.DataBind(); 
    dr.Close(); 我上面这样写到底为什么总是显示第一条呢?把第一条反复显示,郁闷了
    难道必须用dataset吗,用那个太慢了
      

  3.   

    不读的话好像不会自已向下读啊.
    没绑过datareader,呵呵.还真不清楚.
      

  4.   

    绑定Repeater无法movenext啊,又不是用additme那种方法增行,郁闷了
    谁给解释一下哦
      

  5.   

    对啊,所以我有点晕了,呵呵我是用的sql2000的库,用的吴旗娃的那个sql分页存储过程,
    我在查询分析器里执行这个存储过程看了,结果是没有问题的,
    但是绑定后的显示结果,记录数是对的,但是都是在重复第一条
      

  6.   

    while(dr.read())? 不会把,绑定repeart直接那样就可以的,即便是用while 那么循环里面怎么写?
    repeart本身就是一个绑定控件,又没有行的概念
      

  7.   

    呵呵,谢谢楼上,用dataset就很简单了这个事情,但是我只想知道这个为什么不行,
    因为在我的印象中这样应该是可以的,而且我的数据只是查询,也用不着绑定式的分页,
    用dataset太浪费了,速度也比reader慢的多,我想该用datareader的时候还是应该用这个请高手指点一下,我在网上找了很长时间,都没有讲这个事情的,谢谢大家了