我正在尝试仅选择父ID = 0
的行
int predecessor = Parent;
StringBuilder valuePath = new StringBuilder();
valuePath.Append(Parent.ToString());
DataRow[] drPar;
while (true)
{
drPar = dt.Select("MenuID=" + predecessor);
if (drPar != null)
{
if (drPar[0]["ParentID"].ToString().Equals("0"))
break;
}
drPar [0] [“ParentID”]。ToString()。Equals(“0”)给了我 出界异常..
请帮助!
答案 0 :(得分:7)
DataTable.Select
在没有匹配的null
但没有匹配DataRow
的数组时不会返回Length==0
。
但除此之外,为什么你只使用一个“无限”循环来表达一个声明?
所以这应该有效:
drPar = dt.Select("MenuID=" + predecessor);
if (drPar.Length != 0)
{
if (drPar[0]["ParentID"].ToString().Equals("0"))
{
// ...
}
}
答案 1 :(得分:2)
数组drPar必须为空才能显示此错误,因为它是您在代码中使用的唯一索引。
尝试
if (drPar != null && drPar.Length > 0)