2015-01-26 2 views
0

DataGridView에 항목 이름이 이미 있으면 수량을 추가하려고합니다. 그래서 내가 한 일은 for 루프가 DataGridView의 각 행을 검사하도록 만들어졌습니다. 그저 행을 추가하는 것뿐이었습니다.DataGridView의 열에서 모든 값을 가져 오는 방법

for (int x = 0; x < dataGridView.Rows.Count; x++) 
{ 
    if (dataGridView.Rows[x].Cells[1].Value.ToString() == dataTable.Rows[0][2].ToString()) 
    { 
     dataGridView.Rows[x].Cells[0].Value = int.Parse(dataGridView.Rows[x].Cells[0].Value.ToString()) + 1; 
     dataGridView.Rows[x].Cells[2].Value = Convert.ToDecimal(dataTable.Rows[0][4].ToString()) * Convert.ToDecimal(dataGridView.Rows[x].Cells[0].Value.ToString()); 
    } 
    else 
    { 
     quantity = 1; 
     dataGridView.Rows.Add(quantity, dataTable.Rows[0][2], dataTable.Rows[0][4]); 
    } 
} 
+0

for 루프를 거치지 않고 모든 항목 이름을 확인하는 방법이 있습니까? –

+0

foreach를 사용하는 것이 더 좋습니다. 이름이나 sth를 비교하기 위해 모든 요소를 ​​반복해야합니다. 그래서 대답은 no입니다 – Jens

+0

수량 필드는 어디에 새 행이나 새 열에 위치합니까? –

답변

0

문자열 비교에서 .ToLower() 또는 .ToUpper()를 사용하는 것이 더 좋습니다.

0

해결했습니다. 방금 for 루프를 사용하여 검사기를 만들었습니다!

for (int x = 0; x < dataGridView.Rows.Count; x++) 
{ 
    if (dataGridView.Rows[x].Cells[1].Value.ToString() == dataTable.Rows[0][2].ToString()) 
    { 
      same = true; 
      counter = x; 
    } 
} 
if (same == true) 
{ 
    dataGridView.Rows[counter].Cells[0].Value = int.Parse(dataGridView.Rows[counter].Cells[0].Value.ToString()) + 1; 
    dataGridView.Rows[counter].Cells[2].Value = Convert.ToDecimal(dataTable.Rows[0][4].ToString()) * Convert.ToDecimal(dataGridView.Rows[counter].Cells[0].Value.ToString()); 
} 
else 
{ 
    quantity = 1; 
    dataGridView.Rows.Add(quantity, dataTable.Rows[0][2], dataTable.Rows[0][4]); 
} 
관련 문제