首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何确定列是否存在于VB.Net DataRow中

如何确定列是否存在于VB.Net DataRow中
EN

Stack Overflow用户
提问于 2008-10-07 14:30:09
回答 4查看 109.2K关注 0票数 60

我正在将XML文件读入DataSet,需要从DataSet中获取数据。因为它是用户可编辑的配置文件,所以字段可能存在也可能不存在。为了更好地处理缺少的字段,我希望确保DataRow中的每一列都存在并且不是DBNull。

我已经检查了DBNull,但我不知道如何在不抛出异常或使用循环遍历所有列名的函数的情况下确保列存在。做这件事最好的方法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-07 14:39:44

DataRow的优秀之处在于它们的基础表链接到了它们。使用基础表,您可以验证特定行中是否包含特定列。

代码语言:javascript
复制
    If DataRow.Table.Columns.Contains("column") Then
        MsgBox("YAY")
    End If
票数 174
EN

Stack Overflow用户

发布于 2008-10-07 14:37:47

您可以使用DataSet.Tables(0).Columns.Contains(name)检查DataTable是否包含具有特定名称的列。

票数 19
EN

Stack Overflow用户

发布于 2015-12-04 06:31:53

检查列是否存在的另一种方法是在将列名传递给Columns集合索引器时,检查从该集合索引器返回的值是否为Nothing

代码语言:javascript
复制
If dataRow.Table.Columns("ColumnName") IsNot Nothing Then
    MsgBox("YAY")
End If

当下面的代码随后需要获取该DataColumn以供进一步使用时,这种方法可能比使用Contains("ColumnName")方法的方法更可取。例如,您可能想知道哪种类型的列中存储了值:

代码语言:javascript
复制
Dim column = DataRow.Table.Columns("ColumnName")
If column IsNot Nothing Then
    Dim type = column.DataType
End If

在这种情况下,这种方法可以节省您对Contains("ColumnName")的调用,同时使您的代码更加简洁。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/178712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档