更改Datagridview值时,请更改数据表列的值

本文关键字:数据表 Datagridview 值时 更改 | 更新日期: 2023-09-27 18:00:03

我在一个窗体上有两个datagridview控件。当我们在DGV1中更改选择时,DGV2行将根据DGV1中的ID进行筛选。现在,如果我在DGV2的单元格中进行更改,则在DGV1中将更新名为Amount的列。我已经实现了使用单元格值的改变和它的工作良好。为此,我使用了一个数据表。因此,当我想将dgv2中的更改保存到数据库中时。DGV2中输入的值不会保存。为此,我还根据行索引更改dataable中的值。以下是DGV1 中的数据

ID数量单价金额-----------------------1 20 2 402 40 3 120DGV2中的数据如下ID销售数量-----------1 52 101 152 10

因此,当用户点击DGV1中的任何单元格时,DGV2行都会被过滤(正如您在DGV1中看到的,ID=1有2个值)。所有这些都很好。下面是我在DGV2的Cellvalue changed中写的代码行,这样数据表单元格也会更新,因为我需要使用foreach循环保存在数据库中。

dtBatch.Rows[i].SetField("SellQty", gvBatchDetails.Rows[i].Cells["SellQty"].Value);

我使用的是一个变量I(int)。但当用户在DGV1中输入ID 2时,该行被过滤时,第一行的I值也会变为0。数据表ID 2中的as在索引1处。那么在这种情况下如何对数据表进行更改。

更改Datagridview值时,请更改数据表列的值

我通过从datagridview中获取所选行解决了这个问题。

    DataRow[] rowList = QuoteSalesItemSearch.dtBatch.Select("BatchItemID='" + ItemID + "'" + "and BatchNo='" + BatchNo + "'");
  foreach (DataRow dr in rowList)
   dr["SellQty"] = gvBatchDetails.Rows[e.RowIndex].Cells["SellQty"].Value;