- C# code
private DataSet ds = new DataSet(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ds.Tables.Add(); ds.Tables[0].Columns.Add("a", typeof(string)); ds.Tables[0].Columns.Add("b", typeof(string)); ds.Tables[0].Columns.Add("c", typeof(string)); } } protected void Button1_Click(object sender, ImageClickEventArgs e) { DataRow dr = ds.Tables[0].NewRow(); dr[0] = txtBrand.Text; dr[1] = txtName.Text; dr[2] = txtType.Text; ds.Tables[0].Rows.Add(dr); }
请问:当我点击Button1的时候,报错:
无法找到表 0。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
这是什么情况?
------解决方案--------------------------------------------------------
每次请求页面,都会重新实例化一个ds,新ds里是没表的,所以报错。用Session或ViewState保存上一次的ds,Page_Load里重新取得;或者ds设为static(网站程序一般不能这样)。