2013-02-17 107 views
0

我在窗体上有两个datagridview控件。当我们在DGV1中选择更改时,DGV2行将根据DGV1中的ID进行过滤。现在,如果在单元格中进行更改DGV2中的一个名为“金额”的列在DGV1中得到更新。我已经实现了这个使用单元格值更改和工作正常。为此我使用数据表。因此,当我想保存数据库中的dgv2中的更改。DGV2中输入的值不保存。为此,我也正在更改在确定年代取决于行index.Below值在DGV1数据当Datagridview值更改时更改数据表列值

 

ID Qty UnitPrice Amount 
----------------------- 

1 20 2  40 
2 40 3  120 



in DGV2 below is the data 

ID SellQty 
----------- 
1 5 
2 10 
1 15 
2 10 

所以当在DGV1任何小区内的用户点击DGV2行得到过滤(你可以在DGV1看到ID = 1有2值)。所有这一切都很好。下面是我在Cellvalue中编写的代码行,更改了DGV2,以便数据表单元也随着我需要使用foreach循环保存在数据库中进行更新。

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

我使用的变量i(INT)。但当当用户在进入DGV1 ID 2的I值也改变为0第一row.Where如在数据表ID 2是在过滤行索引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;