【发布时间】:2015-10-31 00:19:36
【问题描述】:
我有一个DataGridView,它从 XML 文件中获取其所有数据,我正在尝试将特定列的所有单元格值转换为 int,这是我正在使用的代码。
for (int i = 0; i < targetTable.Rows.Count; i++)
{
if (!targetTable[6, i].Value.Equals(null) && !targetTable[6, i].Value.Equals(""))
{
targetTable[6, i].Value = int.Parse(targetTable[6, i].Value.ToString());
}
else
{
targetTable[6, i].Value = i + 1;
}
}
当我调试这个 for 循环时,索引只会在 0 和 1 之间永远交替,这会导致 StackOverFlowException。
我无法弄清楚它发生的原因,任何帮助将不胜感激。
【问题讨论】:
-
如果 TargetTable 是一个 DataTable,向它添加一个 Int Column 并用字符串列值填充它。然后删除字符串列并重命名新列。如果要将列放在同一列索引处,请使用 DataColumn.SetOrdinal() 函数。
-
@Graffito,我忘了提,但
targetTable是DataGridView -
DataGridView 是否绑定到 DataTable(或任何其他 Dataource)?如果没有,您可以对 DGV 使用相同的原理。对于列索引,更改新列“DisplayIndex”属性。
-
是的,它绑定到一个数据源,一个XML文件。
-
这段代码运行在什么方法或事件中?由于网格是数据绑定的,因此您可能应该针对数据源而不是网格执行此操作。
标签: c# for-loop datagridview stack-overflow