关于 c#:unable to figure out index out of range 异常

unable to figure out index out of range exception

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

位置 0 处没有行

这是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    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;
    }

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

1
  DataTable dt = objCertificate.BuildCertInfo();

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

1
2
3
4
5
6
7
 for (int i = 0; i < gvPRCertInfo.Rows.Count; i++)
 {

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

我不确定我哪里做错了,请给我指出正确的方向,我将非常感激

非常感谢...


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

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