【发布时间】:2011-08-03 19:01:06
【问题描述】:
你好,我正在使用阅读器从存储过程中获取 XML。现在,如果存储过程没有找到任何内容,则返回 null ..在我正在测试的情况下..它不应该返回任何内容,但我的代码是失败..它说有一行..但是当它到达 reader.GetString(0);它说Data is Null. This method or property cannot be called on Null values.
如何检查 null int hat line XML = XML + reader.GetString(0);?它正在通过 while(reader.Read() && reader.HasRows) 检查..当我调试它说有一个项目但是当它到达上面提到的行时它会抛出 Data is null 错误。我该如何解决这个问题?
这是我的代码
SqlDataReader reader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
string XML = "";
while (reader.Read() && reader.HasRows)
{
XML = XML + reader.GetString(0);
}
XML = "<ProductList>" + XML + "</ProductList>";
reader.Close();
myConnection.Close();
return XML;
【问题讨论】:
-
与答案无关,但“xmlOut”是什么
-
啊这是一个错误..现在改变
-
所以问题是我如何检查那个空值?,这样它就不会导致错误
-
问题是它通过了 while() 检查...并在此处抛出错误 XML = XML + reader.GetString(0);
-
仅供参考,我认为 reader.Read() && reader.HasRows 是多余的,你真正需要的是 while(reader.Read()),如果你想让它更干净,你应该这样做: if (reader .HasRows) { while (reader.Read()) { // 东西 } }