我有一个如下所示的datagridview。我循环遍历每个列并检查值是否为真。如果Grade Column = A,则将Name和Grade值放入1 datagridview,如果Grade Column = F,则将其放入另一个datagridview。但是,如果在datagridview中填充了多行,则会产生错误数据。有没有办法可以确保在使用下面的函数(例如rowselected)时显示一行,或者以某种方式循环遍历列,然后相应地每行。在我的实际表中,有超过100列我正在搜索A和F,所以我不能只为每个特定单元格使用循环。
Personid,Name,Grade,99Grade,20Grade
1,鲍勃,A,A,F
2,Sam,F,F,A
3,Kristen,A,A,F
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
答案 0 :(得分:-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