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

请帮助 !

最佳答案

当没有匹配的 DataTable.Select 而是带有 null 的数组时, DataRow 不会返回 Length==0

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

所以这应该有效:

drPar = dt.Select("MenuID=" + predecessor);
if (drPar.Length != 0)
{
    if (drPar[0]["ParentID"].ToString().Equals("0"))
    {
       // ...
    }
}

关于c# - DataTable.Select() 属性 : Giving Index Out of Bound Exception,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11893257/

10-09 18:28