我从数据库中取出数据填充到textbox中,然后按一下next的button就刷新下一条记录
现在碰到的问题是,当我第一次按这个NEXT键是可以刷到第二条记录,但是再按就没有反映了.
下面是几个主要部分的代码,其中i是一个PUBLIC变量
private void Button2_Click(object sender, System.EventArgs e)
  {
   if(i<=max)
    i++;
   selectdata(i);
  }void selectdata(int j)
  {
   string sql="select * from testdata where num="+j;
   SqlConnection conn=new SqlConnection(connstr);
   conn.Open();
   SqlDataAdapter adp=new SqlDataAdapter(sql,conn);
   DataSet ds=new DataSet();
   adp.Fill(ds,"item");
   TextBox1.Text=Convert.ToString(j);
   TextBox2.Text=ds.Tables["item"].Rows[0][1].ToString();
   TextBox3.Text=ds.Tables["item"].Rows[0][2].ToString();
   TextBox4.Text=ds.Tables["item"].Rows[0][3].ToString();
   ds.Clear();
  }望各位大侠指点迷津

解决方案 »

  1.   

    你怎么确认你的i是一个public变量呢?
    你的i是怎么定义的,在同一个类文件里吗?用什么定义的?在asp.net下,如果点击按钮来刷新的话,与winform是有很大区别的,它会把整个类,从page_load,再重新执行一遍的,当然,所有的变量,如i,也就重新定义了一遍。这个时候取出来的i,还是你想要的值吗?你可以设几个断点,跟踪一下就知道了。看看i等于几,从数据库取到值了没有?
      

  2.   

    http是无状态的,每次回发都是一个独立的http请求1. 定义i为static变量
    2。用Session存储i值
    3. 用ViewState存储i值
      

  3.   

    好象设置成static变量就好了,谢谢两位.我刚开始做ASP有什么不懂还望大家多指教