在一个类中,一个函数通过adapter将数据读入类成员变量datatable中,然后关闭数据库连接,接着在另一个函数中访问datat,但是它里面的行数为0为什么
在一个类中定义了一个成员变量datatable,然后再Load()函数中连接数据库,并通过Adapter将数据填入datatable中,
并端口连接。然后再另一函数GridView1_PageIndexChanging中访问datatable,但是它里面却没有数据了,datata.rows.count的值变为0了。
但是通过把datatable改为static就可以了,这是为什么?百思不得其解,忘高人指点一二!
代码如下:
public partial class Student_text : System.Web.UI.Page
{
private SqlConnection conn = new SqlConnection("server=localhost;database=xTest;uid=sa;pwd=sa");
private DataSet dsChoose = new DataSet();
private static DataTable dtChoose = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
conn.Open();
string sqlSChoose = "select * from tb_schoose order by ID desc";
SqlDataAdapter sda = new SqlDataAdapter(sqlSChoose, conn);
sda.Fill(dsChoose);
GridView1.DataSource = dsChoose.Tables[0];
GridView1.DataBind();
conn.Close();
dtChoose = dsChoose.Tables[0];
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataSource = dtChoose;
GridView1.DataBind();
}
}