Infopath 2007重复表空

时间:2012-06-07 20:51:01

标签: c# infopath vsta

我收到此错误:无法读取数据。数据是空的。无法在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");
 }

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

1 个答案:

答案 0 :(得分: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");
}

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