【发布时间】:2018-03-02 18:09:32
【问题描述】:
我正在构建如下这样的数据表,当我尝试逐行为数据库分配值时,我遇到了这样的错误
位置 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
................
................
}
我不确定我在哪里做错了,请指出正确的方向,非常感谢我
非常感谢提前...
【问题讨论】:
-
您确定
dt.Rows有足够的行来覆盖i的范围吗? -
看起来您正试图用
for循环的行填充dt。如果是这种情况,您需要先创建一个新行并将其添加到dt。 -
应该是:dt.Rows.Count(不是gvPRCertInfo)?