當我將數據檢索到我的DataSet
時,year
列是我的DataSet
中的第3列。在使用它之後,我不需要這個列來進行一些計算,所以我使用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
中定義的位置,我認爲這是問題,但不能弄清楚除了做一個克隆和導入之外如何解決它。
您是否試圖刪除foreach循環內的列,並再次檢索列的值?你可以發佈一些代碼嗎? – CjCoax
@CjCoax - 是的,我現在沒有編碼,但稍後會發布,但你所說的正是我所做的。 – Xaisoft