DataTable.Select()属性:赋予索引超出绑定的异常

时间:2012-08-09 23:05:31

标签: c# asp.net

我正在尝试仅选择父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”)给了我 出界异常..

请帮助!

2 个答案:

答案 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)