2013-02-17 3 views
0

폼에 두 개의 datagridview 컨트롤이 있습니다 .DGV1에서 선택 항목이 변경되면 DGV1의 ID에 따라 DGV2 행이 필터링됩니다. DGV2 Amount라는 열이 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 

그래서 = 1 존재하면 ID 위해 DGV1에서 보듯 DGV1의 모든 셀의 사용자 클릭 DGV2 행이 (필터링 받으면 2 값).이 모든 것이 좋습니다. 다음은 Cellvalue에서 작성한 코드 줄을 DGV2로 변경하여 foreach 루프를 사용하여 데이터베이스에 저장해야하는 데이터 테이블 셀도 업데이트됩니다.

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

I는 변수를 사용하고 난 (INT) 나누었다 사용자가 나는 값이도 2에서 인 데이터 테이블 ID와 같이 제 row.Where 0으로 변경 DGV1의 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; 
관련 문제