public partial class modifyuser : System.Web.UI.Page
{
SqlConnection dbConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter dataAdapter = new SqlDataAdapter();
DataSet dataset = new DataSet(); protected void Page_Load(object sender, EventArgs e)
{
............;
} protected void modifyButton_Click(object sender, EventArgs e)
{
.............;
Response.Write(dataset.Tables[0].Rows.Count.ToString()); //dataset中却没有表格存在了?
} protected void Button1_Click(object sender, EventArgs e)
{
............;
SqlCommand cmd = new SqlCommand(queryStr, dbConnection);
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataset, "users");
Response.Write(dataset.Tables[0].Rows.Count.ToString()); //返回行数正常
}
}SqlConnection、SqlDataAdapter、DataSet都已经定义为全局变量了,首先触发Button1_Click()事件之后,将一张Tables表格放入了全局对象DataSet中,但是在之后触发modifyButton_Click(),无法获取dataset中的表格了,提示没有表格!这是为什么?
要利用DataSet存放Tables集合,然后在每个Button事件中都能用到Tables中的表格,应该如何操作!
{
SqlConnection dbConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter dataAdapter = new SqlDataAdapter();
DataSet dataset = new DataSet(); protected void Page_Load(object sender, EventArgs e)
{
............;
} protected void modifyButton_Click(object sender, EventArgs e)
{
.............;
Response.Write(dataset.Tables[0].Rows.Count.ToString()); //dataset中却没有表格存在了?
} protected void Button1_Click(object sender, EventArgs e)
{
............;
SqlCommand cmd = new SqlCommand(queryStr, dbConnection);
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataset, "users");
Response.Write(dataset.Tables[0].Rows.Count.ToString()); //返回行数正常
}
}SqlConnection、SqlDataAdapter、DataSet都已经定义为全局变量了,首先触发Button1_Click()事件之后,将一张Tables表格放入了全局对象DataSet中,但是在之后触发modifyButton_Click(),无法获取dataset中的表格了,提示没有表格!这是为什么?
要利用DataSet存放Tables集合,然后在每个Button事件中都能用到Tables中的表格,应该如何操作!
放在Session、 applacation、catch、 ViewState 里面可以解决。
SqlCommand cmd = new SqlCommand(queryStr, dbConnection);
dataAdapter.SelectCommand = cmd;
dataAdapter.Fill(dataset, "users");
Response.Write(dataset.Tables[0].Rows.Count.ToString()); //返回行数正常放在modifyButton_Click中
需要考虑放在session或者viewstate中,否则多用户会间会有冲突.
你这个,两次触发,dataset清空了
Session是真正的全局变量,当然你也可以把你的dataset声明成静态的。
{
SqlConnection dbConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlDataAdapter dataAdapter = new SqlDataAdapter();
DataSet dataset; protected void Page_Load(object sender, EventArgs e)
{
if(!postback)
{
DataSet dataset = new DataSet();
}
}
....
试试