自定義 dataTable 每次新增的紀錄會不覆蓋舊的紀錄

首先定義一個全局變量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();
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章