Vb.net 检查datagridview的值
我正在导入一个excel文件,在这个excel中,在一列中,我们将其命名为CodeName,可能的值为A01、A02、B01、B02。这些是唯一可能的值 是否可以在datagridview中读取行的内容,并且有一个条件,其中我只能有A01、A02、B01或B02 现在我在想,Vb.net 检查datagridview的值,vb.net,datagridview,Vb.net,Datagridview,我正在导入一个excel文件,在这个excel中,在一列中,我们将其命名为CodeName,可能的值为A01、A02、B01、B02。这些是唯一可能的值 是否可以在datagridview中读取行的内容,并且有一个条件,其中我只能有A01、A02、B01或B02 现在我在想, 'READING every row TESTING For Each row As DataGridViewRow In DataGridView1.Rows If -----T
'READING every row TESTING
For Each row As DataGridViewRow In DataGridView1.Rows
If -----Then
'MsgBox("content has wrong value")
End If
Next
正如它在注释中所说的,最好用一个只带CodeName=yourValue的行的
SELECT
语句填充DataGridView
虽然为了回答你的问题,这可能会在将来对你有所帮助,我还是会这样做:
For Each dgvRow As DataGridViewRow In DataGridView1.Rows
If dgvRow.Cells("CodeName").Value Is DBNull.Value Then
MsgBox("Wrong Value")
Else
Select Case dgvRow.Cells("CodeName").Value
Case "A01", "A02", "B01", "B02"
'Do nothing
Case Else
MsgBox("Wrong Value")
End Select
End If
Next
我先做一个NULL
检查,然后我会使用一个SELECT CASE
语句,因为当比较一些值时,我觉得它比ElseIf
的列表更整洁,但这完全取决于您
您可能不需要一个msgBox
,但如果有很多行不包含您要查找的值,则可能会非常恼人
也许只需设置
dgvRow.Cells(“code name”).Style.BackColor=Color.Red
或其他设置,这样您就可以看到错误的值,而不必每次都单击“确定”。另一种方法。。。定义一个有效值数组,然后对要测试的每个值使用数组的.Contains方法
Dim arr() As String = {"A01", "A02", "B01", "B02"}
For Each row As DataGridViewRow In DataGridView1.Rows
If Not arr.Contains(row.Cells("CodeName").ToString) Then
MsgBox("Wrong")
End If
Next
您使用的是VB.NET还是Excel VBA?这些是完全不同的应用,请在您的问题和标签中澄清。另外,我非常确定有很多教程展示了如何填充DataGridView。试着使用其中一个,然后带着真实的代码、错误信息和问题返回。也看看。如果它有错误的值,你打算怎么做…删除它?vb.net。导入excel文件不是当前的主要问题。我正在将excel文件导入datagridview;但是我的问题是关于阅读datagridview中填写的内容,以便它只能包含A/B 01或02。。我认为读取DGV单元格中的内容要比导入excel文件和弹出的msgbox显示错误的值///以及是否有错误的值之前容易得多;只是一个弹出消息,例如“MsgBox(“错误值”),您应该能够检查
如果row.Cells(“CodeName”)=“A01”或lse…{为每个值重复}
。但是如果您使用OleDb将数据加载到数据源中,您可以在SELECT语句中处理此问题,并且只将那些具有CodeName=的行引入这些值。是的,我正在通过OleDb连接将excel文件导入DGV。好的,我将尝试您的建议;谢谢您,如果您希望我删除此答案,以便Charles可以如果有500行数据呢?在这500行数据中,只有6行有A01、A02、B01、B02。你真的想在那里设置并点击OK按钮494次吗?我至少会在那里放一个行过滤器,只显示我想要的数据,而不是写一个messagebox。”“代码名”或新单元格“错误值”并可能将其点亮。问题是,我们从未收到关于如何处理“错误值”行的答案。我知道我曾在他的评论中表示,出于这个原因,我没有使用msgBox,但他说“…如果它有错误值,只会弹出一条消息,例如“msgBox(“错误值”)”所以我就把它放进去了。是的,你放了,对不起。我老了一定是瞎了。@Pete请更正您的选择。它不会像写的那样工作,因为它正在寻找与“A01、A02、B01、B02”匹配的字符串,而不是单个项<代码>案例“A01”、“A02”、“B01”、“B02”