Когда я извлекаю данные в свой DataSet
, столбец year
является третьим столбцом в моем DataSet
. Мне не нужен этот столбец после его использования, поэтому я делаю некоторые вычисления, поэтому я удаляю его, используя метод Remove
, передавая имя столбца методу Remove
. Проблема в том, что я извлекаю данные в цикле foreach
, поэтому, когда я снова извлекаю данные, столбец year
теперь является последним столбцом в DataSet
, и когда я пытаюсь получить к нему доступ, выдается ошибка, говорящая, что столбец year
не найден. . Мой способ обойти это состоял в том, чтобы клонировать DataSet
в DataTable
, а затем импортировать каждую строку из набора данных в мой DataTable
, но есть ли более эффективный способ или способ сохранить столбец 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
, что, как я предполагаю, является проблемой, но не может выяснить, как это исправить, помимо клонирования и импорта.