信息路径 2007 重复表空值

本文关键字:空值 路径 2007 信息 | 更新日期: 2023-09-27 18:36:41

我收到此错误:无法读取数据。 数据为空。不能对 Null 值调用此方法或属性。

我知道数据库在某些字段中具有 NULL 值。 我只想处理它们并继续填写下一行。 下面是一些代码:

rdr 是 SqlDataReader

if (rdr[EmailID] != null)
{
     //this blows up on this line on the 32nd iteration of the loop when searching for an extended group.
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue(rdr.GetString(EmailID));
 }
 else
 {
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue("No.Email");
 }

我可以使用存储过程处理此问题,但我真的很想知道如何处理此问题。 以上是我尝试过的众多迭代之一。谢谢。

信息路径 2007 重复表空值

我想

通了。 IsDBNull似乎照顾好了它。 我在调试中运行了代码以检查序号的位置。在这种情况下是 14 岁。

int EmailID = rdr.GetOrdinal("EmailID");
Then when using GetString:
if (!(rdr.IsDBNull(14)))
{
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue(rdr.GetString(EmailID));
}
else
{
     EmpNewData.SelectSingleNode("/my:myFields/my:Emp/my:EmpData/my:email", NamespaceManager).SetValue("No Email");
}

我希望这会对某人有所帮助。