2015-08-04 3 views
0

У меня есть datagridview, как показано ниже. Я просматриваю каждую колонку и проверяю, истинны ли значения. Если Grade Column = A, то он помещает Name и значение класса в 1 datagridview, а если Grade Column = F, то он помещает его в другое datagridview. Тем не менее, есть небольшая проблема, когда он создает ложные данные, если в datagridview заполнено более одной строки. Есть ли способ, которым я могу убедиться, что одна строка отображается, когда они используют нижеследующую функцию (например, rowselected) или каким-то образом петляют через столбец, а затем каждую строку соответственно. В моей фактической таблице есть более 100 столбцов, которые я ищу для A и F, поэтому я не могу просто использовать цикл через каждую строку для определенной ячейки.datagridview цикл через все colums для значений

PersonId, название, класс, 99Grade, 20Grade
1, боб, А, А, F
2, Сэм, F, F, A
3, Кристен, А, А, Р

For Each column As DataColumn In dt.Columns 

     If dt.Rows(0).Item(column) = myFirstValue Then 

      If dt.Rows.Count > 0 Then 
       For i As Integer = 0 To dt.Rows.Count - 1 
        Form2.DataGridView1.Rows.Add(column.ColumnName, dt.Rows(i)(1)) 
       Next 
      End If 
     End If 

     If dt.Rows(0).Item(column) = mySecondValue Then 
      If dt.Rows.Count > 0 Then 
       For i As Integer = 0 To dt.Rows.Count - 1 
        Form2.DataGridView2.Rows.Add(column.ColumnName, dt.Rows(i)(1)) 
       Next 
      End If 
     End If 

    Next column 

ответ

-1

ОК, я выясняю, как выбрать одну строку, а не все строки. В случае, если кто-то еще этого захочет.

For Each column As DataColumn In dt.Columns 

If dt.Rows(0).Item(column) = myFirstValue Then 

If dt.Rows.Count > 0 Then or Each lRow As DataGridViewRow In DataGridView1.SelectedRows     
Form2.DataGridView1.Rows.Add(column.ColumnName, lRow.Cells(0).Value)) 
      Next 
     End If 
    End If 

    If dt.Rows(0).Item(column) = mySecondValue Then 
     If dt.Rows.Count > 0 Then 
For Each lRow As DataGridViewRow In DataGridView1.SelectedRows 
Form2.DataGridView2.Rows.Add(column.ColumnName, lRow.Cells(0).Value) 
      Next 
     End If 
    End If 

Next column 
Смежные вопросы