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

时间:2009-04-01 22:55:44

标签: 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#中还有其他名称吗?

3 个答案:

答案 0 :(得分:19)

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

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

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

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

答案 1 :(得分:-2)

try
{
    if (DT.Rows[0][0] != null)
    {      
      //your code
    }    
}    
catch    
{    
    MessageBox.Show("AUTHANICATION FAILED.");    
}

答案 2 :(得分:-2)

请使用:

dataTable.Select("FieldName is NULL")

这将为您提供FieldName列中具有空值的DataRows。