无法找出超出范围的索引异常

时间:2017-09-21 11:44:20

标签: c# asp.net .net datatable

我正在构建如下所示的数据表,当我尝试逐行地为数据库分配值时,我会收到这样的错误

位置0没有行

这是我的代码:

    public DataTable BuildCertInfo()
    {
        DataTable dtCertInfo = new DataTable(TABLE);
        DataColumnCollection columns;
        columns = dtCertInfo.Columns;

        AddColumn(dtCertInfo, ROW_NO, "System.Int32", false, 0);
        AddColumn(dtCertInfo, LIC_ID, "System.Int32", false, 0);
        AddColumn(dtCertInfo, SYS_ID, "System.Int32", false, 0);

         AddColumnString(dtCertInfo, SYS_PART_ID);
         ...............
         ...............
          return dtCertInfo;
    }

我正在调用上面这样的方法

  DataTable dt = objCertificate.BuildCertInfo();

然后我循环遍历gridview并将值分配给数据表,如下所示..

 for (int i = 0; i < gvPRCertInfo.Rows.Count; i++)
 {

     dt.Rows[i][Certificate.SYS_PART_ID] = systemPartID; // here I am getting error
     ................
     ................
  }

我不确定我在哪里做错了,请指点我正确的方向,非常感谢我

非常感谢提前......

1 个答案:

答案 0 :(得分:1)

您没有创建任何行,这就是您收到错误的原因。尝试这样的事情:

for (int i = 0; i < gvPRCertInfo.Rows.Count; i++)
{
    dt.Rows.Add(dt.NewRow());
    dt.Rows[i][Certificate.SYS_PART_ID] = systemPartID;
    ....
}