如何在vb.net中检查datacolumn是否包含值

时间:2015-05-26 11:51:38

标签: asp.net vb.net

我有6列的数据集,我在其中添加了任意三列中的值。所以在将Dataset绑定到Grid之前,我想删除vb.net中不包含任何值的列

For Each column As DataColumn In dt.Columns
    If column Is Nothing OrElse IsDBNull(column) OrElse Convert.DBNull(column) Then
        dt.Columns.Remove(column)
    End If
Next

1 个答案:

答案 0 :(得分:1)

要查找仅包含空值的列,您需要将两个循环嵌套在一起,一个用于列,一个用于行。 要从数据表中删除列,我建议将只包含null的列添加到DataColumn列表中,并且只有在迭代完所有列后才删除它们,否则列的循环可能无法正常工作。

尝试这样的事情:

Dim ValueFound as boolean
Dim ColumnsToRemove as new List(Of DataColumn)
Dim dt as DataTable = MyDataSet.Tables(0)
For Each Column as DataColumn in dt.Columns
    ValueFound = false
    For Each Row as DataRow in dt.Rows
        if Not Row(Column.Name) Is Nothing AndAlso Not IsDBNull(Row(Column.Name)) Then
            ValueFound = True
            Exit For
        End if
    Next
    If Not ValueFound Then
        ColumnsToRemove.Add(Column)
    End If
Next

For Each Column As DataColumn IN ColumnsToRemove
    dt.Columns.Remove(Column)
Next

注意:代码直接写在这里,可能会有一些错误。