从不同的按钮在数据表中添加行 asp.net]



您好,我对数据表有问题。我想每次用户单击按钮时在数据表中插入新行。我有 10 个按钮,当用户单击按钮 1 时,它会插入新行,但当用户单击按钮 2 时,现有行将替换为新行。帮助!

/

///在这里我调用从按钮单击添加新行的方法

 private void RemoveDuplicates (Data_Table dt)                         
        {
    if (ViewState["Markici"] != null)
    {
        dtCurrentTable = (DataTable)ViewState["Markici"];
        if (dtCurrentTable.Rows.Count > 0)
        {
            for (int i = dtCurrentTable.Rows.Count - 1; i >= 0; i--)
            {
                if (i == 0)
                {
                    break;
                }
                for (int j = i - 1; j >= 0; j--)
                {
                    if (dtCurrentTable.Rows[i]["Cena1"].ToString() == dtCurrentTable.Rows[j]["Cena1"].ToString())
                    {
                        dtCurrentTable.Rows[i].Delete();
                        break;

                    }
                }
            }
        }
        dtCurrentTable.AcceptChanges();
      // ViewState["Markici"] = dtCurrentTable;
      //  Repeater1.DataSource = dtCurrentTable;
      //  Repeater1.DataBind();
            AddNewRecordRowToGrid();                            
          AddNewRecordRowToGridf(); 

        decimal vkupno = 0m;
        vkupno += Convert.ToDecimal(Label6.Text);
        decimal vkupno2 = 0m;
        vkupno2 += Convert.ToDecimal(Label17.Text);
        vkupno += vkupno2;
        Label26.Text = vkupno.ToString();
        //xml table
   //     DataSet ds = new DataSet();
     //   ds.Tables.Add(dtCurrentTable);
        //binding Gridview with New Row  
        GridView2.DataSource = dtCurrentTable;
        GridView2.DataBind();
    }
}

添加行的方法,在按钮单击9中调用此

  private void AddNewRecordRowToGrid()
    {         
        int counter;
        if (Request.Cookies["kasa"] == null)
            counter = 0;

        else
        {
            counter = int.Parse(Request.Cookies["kasa"].Value);
        }
        counter++;
        Response.Cookies["kasa"].Value = counter.ToString();
        Response.Cookies["kasa"].Expires = DateTime.Now.AddYears(2);
        if (ViewState["Markici"] != null)
        {
            DataTable dtCurrentTable = (DataTable)ViewState["Markici"];
            DataRow drCurrentRow = null;
            if (dtCurrentTable.Rows.Count > 0)
            {
                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                {
                    drCurrentRow = dtCurrentTable.NewRow();
                    drCurrentRow["FirmaID"] = Request.Cookies["firma"].Value; 
                    drCurrentRow["Godina"] = Request.Cookies["godina"].Value;
                    drCurrentRow["KasaID"] = Request.Cookies["kasa"].Value;
                    drCurrentRow["MarkicaID"] = counter; 
                    drCurrentRow["Datum"] = DateTime.Now;
                    drCurrentRow["Masa"] = Session["masa39"];
                    drCurrentRow["VrabotenID"] = Session["New"];
                    drCurrentRow["Artikal"] = Label3.Text;
                    drCurrentRow["Cena1"] = Label4.Text;
                    drCurrentRow["Kolicina"] = Label5.Text;
                    drCurrentRow["Smena"] = Session["smena1"];
                    drCurrentRow["VkIznos"] = Label6.Text;
                    drCurrentRow["VkDanok"] = Label8.Text;
                    drCurrentRow["SySDatum"] = DateTime.Now;
                    drCurrentRow["Vid"] = Label23.Text;
                    drCurrentRow["Edmera"] = Label10.Text;
                    drCurrentRow["ArtikalID"] = Label33.Text;
                }
                /*
                for (int i = 0; i < dtCurrentTable.Rows.Count; i++)
                {
                    if (dtCurrentTable.Rows[i].IsNull(0) == true)
                    {
                        dtCurrentTable.Rows[i].Delete();
                        dtCurrentTable.AcceptChanges();
                    }
                }*/
                //Removing initial blank row  
                if (dtCurrentTable.Rows[0][0].ToString() == "")
                {
                    dtCurrentTable.Rows[0].Delete();
                    dtCurrentTable.AcceptChanges();
                }
                //Added New Record to the DataTable  
                dtCurrentTable.Rows.Add(drCurrentRow);
                //storing DataTable to ViewState  
                ViewState["Markici"] = dtCurrentTable;
                //binding Gridview with New Row  
                GridView2.DataSource = dtCurrentTable;
                GridView2.DataBind();

            }
        }
    }
    // call this in button 10 click
    private void AddNewRecordRowToGridf()
    {
        if (ViewState["Markici"] != null)
        {
            DataTable dtCurrentTable = (DataTable)ViewState["Markici"];
            DataRow drCurrentRow = null;
            if (dtCurrentTable.Rows.Count > 0)
            {
                for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                {

                    //Creating new row and assigning values  
                    drCurrentRow = dtCurrentTable.NewRow();
                    drCurrentRow["FirmaID"] = Request.Cookies["firma"].Value;
                    drCurrentRow["Godina"] = Request.Cookies["godina"].Value;
                    drCurrentRow["KasaID"] = Request.Cookies["kasa"].Value;
                    drCurrentRow["MarkicaID"] = Request.Cookies["kasa"].Value; 
                    drCurrentRow["Datum"] = DateTime.Now;
                    drCurrentRow["Masa"] = Session["masa39"];
                    drCurrentRow["VrabotenID"] = Session["New"];
                    drCurrentRow["Artikal"] = Label12.Text;
                    drCurrentRow["Cena1"] = Label13.Text;
                    drCurrentRow["Kolicina"] = Label11.Text;
                    drCurrentRow["Smena"] = Session["smena1"];
                    drCurrentRow["VkIznos"] = Label17.Text;
                    drCurrentRow["VkDanok"] = Label18.Text;
                    drCurrentRow["SySDatum"] = DateTime.Now;
                    drCurrentRow["Vid"] = Label24.Text;
                    drCurrentRow["Edmera"] = Label16.Text;
                    drCurrentRow["ArtikalID"] = Label34.Text;
                }
                for (int i = 0; i < dtCurrentTable.Rows.Count; i++)
                {
                    if (dtCurrentTable.Rows[i].IsNull(0) == true)
                    {
                        dtCurrentTable.Rows[i].Delete();
                        dtCurrentTable.AcceptChanges();
                    }
                }
                /*
                //Removing initial blank row  
                if (dtCurrentTable.Rows[0][0].ToString() == "")
                {
                   dtCurrentTable.Rows[0].Delete();
                   dtCurrentTable.Rows[1].Delete();
                    dtCurrentTable.AcceptChanges();
                }
                */
                //Added New Record to the DataTable  
                dtCurrentTable.Rows.Add(drCurrentRow);
                //storing DataTable to ViewState  
                ViewState["Markici"] = dtCurrentTable;
                //binding Gridview with New Row  
                GridView2.DataSource = dtCurrentTable;

                GridView2.DataBind();
            }
        }
    protected void Button9_Click(object sender, EventArgs e)
    {
        RemoveDuplicates(dt);
      }
    protected void Button10_Click(object sender, EventArgs e)
    {
        RemoveDuplicates(dt);
      }
       // create DataTable
    private void AddDefaultFirstRecord()
    {
        //creating DataTable  
        DataTable dt = new DataTable();
        DataRow dr;
        dt.TableName = "Markici";
        //creating columns for DataTable  
        dt.Columns.Add(new DataColumn("FirmaID", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("Godina", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("KasaID", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("MarkicaID", typeof(System.Int64)));
        dt.Columns.Add(new DataColumn("Datum", typeof(System.DateTime)));
        dt.Columns.Add(new DataColumn("Masa", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("VrabotenID", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("Artikal", typeof(System.String)));
        dt.Columns.Add(new DataColumn("Cena1", typeof(System.String)));
        dt.Columns.Add(new DataColumn("Kolicina", typeof(System.Decimal)));
        dt.Columns.Add(new DataColumn("Smena", typeof(System.Int32)));
        dt.Columns.Add(new DataColumn("VkIznos", typeof(System.Decimal)));
        dt.Columns.Add(new DataColumn("VkDanok", typeof(System.Decimal)));
        dt.Columns.Add(new DataColumn("SysDatum", typeof(System.DateTime)));
        dt.Columns.Add(new DataColumn("Vid", typeof(System.String)));
        dt.Columns.Add(new DataColumn("EdMera", typeof(System.String)));
        dt.Columns.Add(new DataColumn("ArtikalID", typeof(System.String)));
        dr = dt.NewRow();
        dt.Rows.Add(dr);
        ViewState["Markici"] = dt;
        GridView2.DataSource = dt;
        GridView2.DataBind();
    }
Add dtCurrentTable.AcceptChanges();

在 dtCurrentTable.Rows.Add(drCurrentRow);

不要将数据表保留在视图状态中。 数据表是一个大对象。它会影响页面性能。您可以保留缓存或会话。

我的建议是缓存数据表数据源而不是数据表对象。

最新更新