0

我收到此错误:无法读取数据。数据为空。不能对 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");
 }

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

4

1 回答 1

0

我想通了。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");
}

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

于 2012-06-08T13:46:19.173 回答