日期:2014-05-18  浏览次数:20572 次

关于DataSet请教一下!
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(网站程序一般不能这样)。