指定的参数已超出有效值的范围。 参数名: index,该如何解决

指定的参数已超出有效值的范围。 参数名: index
    private void FrmClassMain_Load(object sender, EventArgs e)
    {
      foreach (DataRow dr in AppClass.getOrgoranize().Tables[0].Rows)
      {
        TreeNode tr_organize = new TreeNode();
        tr_organize.Text = dr["ORGANIZE_NAME"].ToString();
        tr_organize.Tag = dr["ORGANIZE_ID"].ToString();
        this.treeView.Nodes.Add(tr_organize);

        foreach (DataRow dr_sub in AppClass.getClass(tr_organize.Tag.ToString()).Tables[0].Rows)
        {
          TreeNode tr_class = new TreeNode();
          tr_class.Text = dr_sub["ORGANIZE_NAME"].ToString();
          tr_class.Tag = dr_sub["ORGANIZE_ID"].ToString();
          tr_organize.Nodes.Add(tr_class);

        }
      }
      this.treeView.Nodes[0].Expand();
      this.treeView.SelectedNode = this.treeView.Nodes[0].Nodes[0];
      this.WindowState = FormWindowState.Maximized;
    }
------解决方案--------------------
下标越界,因为你没有指出发生错误的具体行,我们假设是
 foreach (DataRow dr_sub in AppClass.getClass(tr_organize.Tag.ToString()).Tables[0].Rows)
这里出错
那么就是AppClass.getClass(tr_organize.Tag.ToString()).Tables没有表存在。

如果是别的行出错,也照此分析。
------解决方案--------------------
自己断点跟一下,什么都知道了
 AppClass.getOrgoranize().Tables[0].Rows
不要方法后面直接取属性
中间结果先放dataset里,判断一下是否为空
------解决方案--------------------
this.treeView.Nodes[0].Expand();
      this.treeView.SelectedNode = this.treeView.Nodes[0].Nodes[0];
debug这两句