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循环中没有检索到数据,我将发布一些代码。