C# 删除强类型数据集中的列时出错?
当我将数据检索到我的C# 删除强类型数据集中的列时出错?,c#,.net-2.0,strongly-typed-dataset,C#,.net 2.0,Strongly Typed Dataset,当我将数据检索到我的数据集中时,年份列是我的数据集中的第三列。在使用该列进行一些计算后,我不需要该列,因此我使用remove方法将其删除,将列的名称传递给remove方法。问题是我在foreach循环中检索数据,因此当我再次检索数据时,year列现在是数据集中的最后一列,当我尝试访问它时,它抛出一个错误,说找不到year列。我的解决方法是通过数据集克隆到数据表,然后将数据集中的每一行导入到我的数据表,但是有没有更有效的方法或方法将年份列保持在其原始位置 private int GetData()
数据集中时,年份
列是我的数据集中的第三列。在使用该列进行一些计算后,我不需要该列,因此我使用remove
方法将其删除,将列的名称传递给remove
方法。问题是我在foreach
循环中检索数据,因此当我再次检索数据时,year
列现在是数据集中的最后一列,当我尝试访问它时,它抛出一个错误,说找不到year
列。我的解决方法是通过数据集
克隆到数据表
,然后将数据集中的每一行导入到我的数据表
,但是有没有更有效的方法或方法将年份
列保持在其原始位置
private int GetData()
{
dataSet.GetExportData();
DataTable dt = dataSet.ExportData;
for(int i = 0; i <dataSet.ExportData; i++)
{
//Do Stuff
}
dataSet.Columns.Remove(dataSet.ExportData.YearColumn.ColumnName);
}
private int GetData()
{
dataSet.GetExportData();
DataTable dt=dataSet.ExportData;
对于(int i=0;i最好是在注释中,但我想利用代码样式,而且如果不看到代码,很难说出您想要实现什么
foreach (DataRow row in myTable.Rows)
{
//do something with year column
myTable.Columns.Remove("year");
}
上述代码在第一次迭代中运行良好,但随后将失败,因为myTable.Columns.Remove(“year”)
将从表中删除整个列,而不仅仅是从当前行中删除,并给出:您将得到“year”列不属于表中的列。
异常
为什么不将myTable.Columns.Remove(“年”);
从foreach中删除呢
foreach (DataRow row in myTable.Rows)
{
//do something with year column
}
myTable.Columns.Remove("year");
您是否正在尝试删除foreach循环中的列,然后再次检索列的值?是否可以发布一些代码?@CjCoax-是的,我现在没有代码,但稍后会发布,但您所说的正是我正在做的。抱歉,我很快与您通话。foreach循环中没有检索到数据,我将发布一些代码。