循环行时如何替换列值?
我的DataTable有两列,我想替换每行第一列的值。我无法获取或设置列值。到目前为止,我只管理访问DefaultValue和ColumnName等。
即使创建了新的DataColumn(),我也无法设置它的值。
感觉我遗漏了一些基本的东西...
foreach (var row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
// column Unable to get or set value
}
}运行.NET Framework3.5,我应该使用linq吗?
发布于 2012-10-18 17:35:38
由于DataTable.Rows仅实现IEnumerable而不是IEnumerable<T>,因此您需要将其强制转换为foreach中的DataRow,并且不能使用var:
foreach (DataRow row in dataTable.Rows)
{
foreach (DataColumn column in dataTable.Columns)
{
row.SetField(column, newValue);
}
}发布于 2012-10-18 17:38:43
for (int rowIndex = 0; rowIndex < dataTable.Rows.Count; rowIndex++)
{
dataTable.Rows[rowIndex][0] = "Replacing value";
}发布于 2012-10-18 18:59:22
你可以这样做
foreach (DataRow row in table.Rows)
{
row.SetField(table.Columns.Cast<DataColumn>().Single(column => column.Ordinal == 0), "new");
}https://stackoverflow.com/questions/12951411
复制相似问题