Vb.net 循环遍历特定的数据集列以检查它是否包含某个值

Vb.net 循环遍历特定的数据集列以检查它是否包含某个值,vb.net,loops,datagridview,rows,Vb.net,Loops,Datagridview,Rows,我加载了一个datagridview,并试图找到一种快速的方法,在给定列名的情况下循环某个列 这就是如何加载我的datagridview ad = New SqlDataAdapter(sql, con) ad.Fill(ds, "Fields") dgvFields.DataSource = ds.Tables("Fields") dgvFields.ReadOnly = True dgvFields.RowHeadersVisible = False dgvFields.Columns(

我加载了一个datagridview,并试图找到一种快速的方法,在给定列名的情况下循环某个列

这就是如何加载我的datagridview

ad = New SqlDataAdapter(sql, con)
ad.Fill(ds, "Fields")
dgvFields.DataSource = ds.Tables("Fields")

dgvFields.ReadOnly = True
dgvFields.RowHeadersVisible = False

dgvFields.Columns(0).Width = 156
dgvFields.Columns(1).Width = 156
dgvFields.Columns(2).Width = 156
dgvFields.Columns(3).Width = 157
'现在我希望能够循环遍历dgvfields.columns(3)或列名“Field1a”,并检查dgvfields.rows=“ValueA”

一些类似的东西

   For Each row As DataRow In dgvFields.Columns(5)
       if dgvfields.rows.value="ValueA" then
          'do something
       End if

   Next

问题是您正在查看的行的类型
DataRow
用于
DataTable
而不是
DataGridViewRow
。。。我建议使用索引

注意:这可以通过多种方式完成

For i As Integer = 0 To dgvFields.Rows.Count - 1
       If dgvfields.Rows(i).Cells("THE COLUMN NAME").Value="ValueA" Then
          'do something
       End if    
Next

扫描datatable而不是控件-代码段混合并匹配DT和DGV元素。查看vb,循环版本@Thankyou,如果我想更改某一行的颜色,该行的值就是我要查找的值?dgvfields.rows(i).defaultcellstyle.backColor=color.blue似乎不起作用:/它确实起作用,您是否在加载事件上执行此操作,如果这样,它将不起作用
dgvfields.Rows(i).DefaultCellStyle.BackColor=YOURCOLOR
可以工作,但无法在加载时完成,因为它会阻止单元格的更改。如果您愿意,可以在其中更改颜色,这发生在DataGridView消息被抽取之后。我正在从LOAD调用一个函数来填充GridView。这很好,然后在我上次评论中提到的事件中执行此操作…就像从LOAD(实例化)执行此操作一样,它阻止了颜色的更改。。。如果我回答了你原来的问题,请接受答案。另一方面,请不要在评论中问其他问题,这是不礼貌的,除非他们阅读了评论,否则没有人会看到它;创建另一个问题。