自定义 dataTable 每次新增的纪录会不覆盖旧的纪录

来源:互联网 发布:python 分隔符 编辑:程序博客网 时间:2024/05/16 06:36

首先定义一个全局变量dataTable
 public DataTable dt
    {
        get { return (DataTable)ViewState["dt"]; }
        set { ViewState["dt"] = value; }
    }
在首次加载页面的时候创建表的列
   protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataTable dt1 = new DataTable();
            dt1.Columns.Add("Choose", typeof(string));
            dt1.Columns.Add("IsRight", typeof(string));
            dt1.Columns.Add("ID", typeof(string));
            dt = dt1;
            DataColumn[] dc = new DataColumn[1];
            dc[0] = dt.Columns["ID"];
            dt.PrimaryKey = dc;
        }
    }
点击button时添加记录
此时只是放在GridView1中,没有保存在数据库中
 protected void btnAdd_Click(object sender, EventArgs e)
    {
        DataRow dr = dt.NewRow();
        dr["Choose"] = txtChooseItem.Text;
        dr["IsRight"] = cbRightItem.Checked ? true : false;
        dr["ID"] = Guid.NewGuid().ToString();
        dt.Rows.Add(dr);
        dt.AcceptChanges();//这一句很重要,否则每次新增的纪录会覆盖久的纪录

//被这个问题困扰了2天 汗啊
        if (dt.Rows.Count != 0)
        {
            GridView1.DataSource = dt;
            ViewState["DataSource"] = dt;
            GridView1.DataBind();
        }
    }

原创粉丝点击