当我将数据检索到我DataSet
的 中时,该year
列是我的第 3 列DataSet
。使用此列后我不需要此列进行一些计算,因此我使用将Remove
列名称传递给方法的方法将其删除Remove
。问题是我在foreach
循环中检索数据,所以当我再次检索数据时,该year
列现在是最后一列,DataSet
当我尝试访问它时,它会抛出一个错误,提示year
找不到列。我解决这个问题的方法是将 by 克隆DataSet
到 aDataTable
中,然后将数据集中的每一行导入到 myDataTable
中,但是有没有更有效的方法或方法可以将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);
}
在上面的代码中,当我打开一个对话框并选择要导出的数据时,它第一次可以工作,但是如果我保持对话框打开并再次单击按钮以导出,则会引发错误。如果我关闭对话框并重新打开,它工作正常。正如我之前所说,我注意到当它在单击按钮上再次检索数据时dataSet.GetExportData()
,它将Year
列作为最后一列而不是强类型中的定义位置DataSet
,我认为这是问题,但无法弄清楚如何除了进行克隆和导入之外,还要修复它。