日期:2014-05-19  浏览次数:20475 次

asp.net中使用sqlreader读取显示数据问题
本人刚刚接触ASP.NET,在一个页面中,使用sqlreader读取数据后,想一条记录一条记录的把每一条记录的字段内容显示在TextBox控件中,每点击Button控件一次,TextBox显示下一条记录,但现在是总显示第一条记录内容,没有移动到下一条记录,是不是在我点击Button的时候,sqlreader又从新打开,这样就永远显示第一条记录的内容,不知道怎么改,请高手给个解决办法,50分送,非常感谢.

qinhu(SqlConnection)   qh(SqlDataReader)   qinhu1(SqlCommand)均已经定义好.

Page_Load事件如下:
   qinhu.Open()
   qh   =   qinhu1.ExecuteReader
        End   Sub

Button事件如下
    If   qh.Read   Then
                        TextBox1.Text   =   qh.Item(0).ToString
                        TextBox2.Text   =   qh.Item(1).ToString
                  End   If
      End   Sub

按照以上方式在VB.NET中没有任何问题.请高手给出答案.50分送

------解决方案--------------------
用静态变量保存点击次数,跳过开头的记录
------解决方案--------------------
Page_Load事件如下:
   qinhu.Open()
   qh = qinhu1.ExecuteReader
End Sub
照你这样,效率好低啊,数据不大的话,用DATASET啦!其次,将你的点击次数状态保存,再点击时候就读出来。
------解决方案--------------------
这个跟分页差不多 点击Button的时候是第几个记录 就末尾加跳转到本页的方法 后面接个参数比如xxx.aspx?Page=第几个记录

Page_Load事件中
读取Page的值
然后显示记录

点击Button的时候记录就是Page+1
------解决方案--------------------
对了 使用Session保存 也行
------解决方案--------------------
未判断Page.IsPostBack,每次点button提交后重新绑定了数据 这样永远只显示第一条数据
------解决方案--------------------
你这种问题,不可以用SqlDataReader,应使用DataSet or DataTable
这2个是不需和数据库保持连接的
数据取到DataSet or DataTable 后将其Cache
定义一变量来记录点击Button的次数,可放Session or hidden control 里
根据这个次数去判断从 Cache 起来的 DataSet or DataTable 里取相应的数据
------解决方案--------------------
你要理解B/S结构的程序与C/S结构程序的本质区别.你的错误就是没有理解造成的.