如何在按钮单击事件中向数据表添加行?

昂江轩

Windows Forms中,我想通过从其他控件中获取值,将按钮单击事件中的行逐行添加到DataGridView中。在这种情况下,我使用的是DataTable,它已绑定到DataGridView。

我正在使用以下代码,并且在首次插入数据时工作正常。但是我的问题是,当我第二次单击该按钮时,第一行被第二行数据覆盖。

private void btnAddToGrid_Click(object sender, EventArgs e)
{
        LoadDataGridView();
}

private void LoadDataGridView()
{
        dgvAdjustment.DataSource = GetAdjustmentTable();
}

private DataTable GetAdjustmentTable()
{
        DataTable adjustmentTable = new DataTable();

        DataColumn dataColumn;
        dataColumn = new DataColumn("SourceOutletID", typeof(int));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("DestinationOutletID", typeof(int));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("TransactionDate", typeof(DateTime));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("MaterialName", typeof(string));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("AdjustmentType", typeof(int));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("CurrentBalance", typeof(decimal));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("AdjustmentQty", typeof(decimal));
        adjustmentTable.Columns.Add(dataColumn);
        dataColumn = new DataColumn("NewBalance", typeof(decimal));
        adjustmentTable.Columns.Add(dataColumn);

        DataRow dataRow = adjustmentTable.NewRow();
        dataRow[0] = cmbSourceOutlet.SelectedValue;
        dataRow[1] = cmbDestinationOutlet.SelectedValue;
        dataRow[2] = TransDateTimePicker.Value;
        dataRow[3] = cmbMaterialName.SelectedValue;
        dataRow[4] = cmbAdjustmentType.SelectedValue;
        dataRow[5] = Convert.ToDecimal(lblCurBalVal.Text);
        dataRow[6] = Convert.ToDecimal(lblAdjVal.Text);
        dataRow[7] = Convert.ToDecimal(lblNewQtyVal.Text);

        int insertPosition = adjustmentTable.Rows.Count;
        adjustmentTable.Rows.InsertAt(dataRow, insertPosition);

        return adjustmentTable;
}

ASP .NET应用程序中,我使用会话状态通过以下代码检查DataTable是否为空:

protected void Button1_Click(object sender, EventArgs e)
{
  try
  {
     //Check if previous session is exist
     if (Session["MyTable"] == null)
     {
         dtMyTable = new DataTable("MyTable");
         dtMyTable.Columns.Add("Id", typeof(int));
         dtMyTable.Columns.Add("LName", typeof(string));

     }
     else
     {
         //If yes then get it from current session
         dtMyTable = (DataTable)Session["MyTable"];
     }

     //Add new row every time
     DataRow dt_row;
     dt_row = dtMyTable.NewRow();
     dt_row["Id"] = TextBox1.Text;
     dt_row["LName"] = TextBox2.Text;
     dtMyTable.Rows.Add(dt_row);

     //Update session table
     Session["MyTable"] = dtMyTable;
  }
  catch (Exception ex)
  {

     Response.Write(ex.Message);
  }
}

我该怎么办,如何进行更改以获取Windows窗体中的正确解决方案任何帮助都感激不尽!

大卫·阿尔诺

在中GetAdjustmentTable,您adjustmentTable每次都在重新创建因此,新行将覆盖现有行。

您需要修改adjustmentTable仅创建一次的代码,随后的调用会向其中添加行。一种方法是将其设置为私有字段,并检查其是否为空,如果为空,则创建它:

private DataTable _adjustmentTable;

private DataTable GetAdjustmentTable()
{
    if (adjustmentTable == null)
    {
        adjustmentTable = new DataTable();
    }
    ....

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在按钮单击事件中将两个源数据加载到数据表中

来自分类Dev

如何在按钮单击时在数据表中标记行?

来自分类Dev

我如何在vuetify数据表的行内将按钮单击事件与行单击事件分开

来自分类Dev

如何在数据表中添加行-DC.js

来自分类Dev

如何在SQL Server的数据表中动态添加行

来自分类Dev

如何在angular2数据表中添加行号或序列号

来自分类Dev

在数据表中添加行

来自分类Dev

如何在按钮单击事件中停止服务

来自分类Dev

如何在按钮单击事件中隐藏占位符?

来自分类Dev

如何在按钮单击事件中显示typeahead.js下拉数据?

来自分类Dev

如何使用单击事件时的删除按钮从数据表中删除记录(通过鼠标选择)?

来自分类Dev

如何在单击按钮时动态创建数据表

来自分类Dev

如何在按钮单击事件中将JavaFX Table数据转换为Apache POI Excel工作表?

来自分类Dev

如何在R中的数据表DT中添加行边框和斑马条纹(行条纹)?

来自分类Dev

在按钮上单击时在android中添加片段,并同时向其中添加数据

来自分类Dev

数据表-在向表中添加新数据时如何停止服务器端绘制事件

来自分类Dev

在数据表中添加HTML标记添加行

来自分类Dev

在数据表中添加HTML标记添加行

来自分类Dev

如何在数据表中添加数据导出按钮

来自分类Dev

使用智能表在按钮的单击事件上搜索数据

来自分类Dev

如何在按钮单击事件上将项目添加到列表视图?

来自分类Dev

通过数据表 jquery 插件添加按钮上的 jQuery 单击事件

来自分类Dev

数据表:如何设置选择/突出显示的添加行?

来自分类Dev

在Django数据表中添加行ID

来自分类Dev

在 Django 中添加行会破坏数据表

来自分类Dev

如何在数据表中的按钮名称上添加选择过滤器

来自分类Dev

如何在数据表的每一行中添加按钮?

来自分类Dev

Vue-如何在Vuetify数据表的每一行中添加按钮?

来自分类Dev

如何在Laravel 4.2的数据表中添加“编辑/删除”按钮?

Related 相关文章

  1. 1

    如何在按钮单击事件中将两个源数据加载到数据表中

  2. 2

    如何在按钮单击时在数据表中标记行?

  3. 3

    我如何在vuetify数据表的行内将按钮单击事件与行单击事件分开

  4. 4

    如何在数据表中添加行-DC.js

  5. 5

    如何在SQL Server的数据表中动态添加行

  6. 6

    如何在angular2数据表中添加行号或序列号

  7. 7

    在数据表中添加行

  8. 8

    如何在按钮单击事件中停止服务

  9. 9

    如何在按钮单击事件中隐藏占位符?

  10. 10

    如何在按钮单击事件中显示typeahead.js下拉数据?

  11. 11

    如何使用单击事件时的删除按钮从数据表中删除记录(通过鼠标选择)?

  12. 12

    如何在单击按钮时动态创建数据表

  13. 13

    如何在按钮单击事件中将JavaFX Table数据转换为Apache POI Excel工作表?

  14. 14

    如何在R中的数据表DT中添加行边框和斑马条纹(行条纹)?

  15. 15

    在按钮上单击时在android中添加片段,并同时向其中添加数据

  16. 16

    数据表-在向表中添加新数据时如何停止服务器端绘制事件

  17. 17

    在数据表中添加HTML标记添加行

  18. 18

    在数据表中添加HTML标记添加行

  19. 19

    如何在数据表中添加数据导出按钮

  20. 20

    使用智能表在按钮的单击事件上搜索数据

  21. 21

    如何在按钮单击事件上将项目添加到列表视图?

  22. 22

    通过数据表 jquery 插件添加按钮上的 jQuery 单击事件

  23. 23

    数据表:如何设置选择/突出显示的添加行?

  24. 24

    在Django数据表中添加行ID

  25. 25

    在 Django 中添加行会破坏数据表

  26. 26

    如何在数据表中的按钮名称上添加选择过滤器

  27. 27

    如何在数据表的每一行中添加按钮?

  28. 28

    Vue-如何在Vuetify数据表的每一行中添加按钮?

  29. 29

    如何在Laravel 4.2的数据表中添加“编辑/删除”按钮?

热门标签

归档