4

我试图只选择那些父 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") 给了我出界异常..

请帮忙 !

4

2 回答 2

7

DataTable.Selectnull当没有匹配DataRow但带有 . 的数组时不返回Length==0

但除此之外,你为什么只对一个语句使用“无限”循环?

所以这应该工作:

drPar = dt.Select("MenuID=" + predecessor);
if (drPar.Length != 0)
{
    if (drPar[0]["ParentID"].ToString().Equals("0"))
    {
       // ...
    }
}
于 2012-08-09T23:14:25.537 回答
2

数组 drPar 必须为空才能给出此错误,因为它是您在代码中使用的唯一索引。

尝试

 if (drPar != null && drPar.Length > 0)
于 2012-08-09T23:08:27.877 回答