我有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
答案 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
注意:代码直接写在这里,可能会有一些错误。