0

我在表单上有两个 datagridview 控件。当我们在 DGV1 中选择更改时,DGV2 行会根据 DGV1 中的 ID 进行过滤。现在,如果我在 DGV2 的单元格中进行更改,则名为 Amount 的列会在 DGV1 中更新。我已经使用更改的单元格值实现了这一点并且它工作正常。为此我正在使用数据表。所以当我想在数据库中保存 dgv2 中的更改时。在 DGV2 中输入的值没有保存。为此我也在改变数据表中的值取决于行索引。下面是 DGV1 中的数据

ID 数量 单价 金额
----------------------

1 20 2 40
2 40 3 120



在下面的 DGV2 中是数据

ID 销售数量
------------
1 5   
2 10  
1 15
2 10

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

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

我正在使用变量 i (int)。但是当用户在 DGV1 中输入 ID 2 时过滤该行时,第一行的 i 值也更改为 0。在 Datatable ID 2 中位于索引 1 处。那么如何制作在这种情况下,数据表的变化。

4

1 回答 1

0

我已经通过从 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;
于 2013-02-18T09:00:40.457 回答