C# DataTable ItemArray 返回 '{}' - 如何测试空值?

标签 c# datatable null datarow

我有一个 DataTable resultSet; - 我正在尝试检查字段是否为空,但得到一个“{}”(空集?)对象。涉及“{}”的搜索未产生任何合适的解决方案。

这是当“fk_id”字段为空时无法按预期工作的代码:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == null)
{
   //never reaches here
}

注意:使用 int 索引而不是 Columns.IndexOf() 不是问题。

“{}”在 C# 中还有其他名称吗?

最佳答案

要检查 DataSet 中的 DBNull 列,您可以使用 IsNull方法:

if (resultSet.Rows[0].IsNull("fk_id"))

您与 null 的比较可能会失败,因为数据集不使用 null 来表示“数据库 NULL”值 - 他们使用 DBNull.Value .如果您需要您的代码按照您呈现的方式工作,请尝试以下操作:

if (resultSet.Rows[0].ItemArray[resultSet.Columns.IndexOf("fk_id")] == DBNull.Value)

关于C# DataTable ItemArray 返回 '{}' - 如何测试空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/707658/

相关文章:

c# - 在 XML 输出文件中显示 NUnit 测试的测试描述

c# - Roslyn:为什么许多 SymbolDisplay 方法在 ISymbol 上有等效的实例对应物?

c - malloc 返回 null 时动态数组清理

python - Python中有 `?.`运算符吗?

c# - 在 'Any CPU' .NET 程序集上强制执行 x86 CLR

c# - 如何在 C# 中过滤数据表中的日期时间字段而忽略它的时间值

vue.js - 如何动态更改 v-data-table 的表头?

javascript - Rails 数据表选择过滤器

C# 验证字符串并在 null 或空时显示错误消息的问题

c# - DbContext.Database.Migrate() 方法在哪里?