У меня есть приложение winforms, которое использует строго типизированный пользовательский набор данных для хранения данных для обработки.Он заполняется данными из базы данных.
У меня есть пользовательский элемент управления, который берет любой пользовательский набор данных и отображает содержимое в сетке данных.Это используется для тестирования и отладки.Чтобы сделать элемент управления повторно используемым, я рассматриваю пользовательский набор данных как обычный System.Data.DataSet.
Я расширил элемент управления, чтобы разрешить сохранение набора данных в файл XML, а также загрузить ранее сохраненные файлы XML.
То, что я сейчас пытаюсь сделать, это взять загруженный файл данных, который рассматривается как стандартный набор данных, и вернуть его в набор пользовательских данных.Это не должно быть сложно, но я получаю следующее сообщение System.InvalidCastException:
Невозможно привести объект типа 'System.Data.DataSet' к типу 'CostingDataSet'.
Вот пример кода проблемы (это последняя строка 3, которая генерирует исключение):
DataSet selected = debugDisplay.SelectedDataSet;
CostingDataSet tempDS = new CostingDataSet();
tempDS = (CostingDataSet)selected.Copy();
Кто-нибудь может подсказать мне, как это исправить?
Редактировать: После комментариев nEM я реализовал это, и все было хорошо.
foreach (System.Data.DataTable basicDT in selected.Tables)
{
DataTable dt = tempDS.Tables[basicDT.TableName];
dt = basicDT.Copy();
}
Кроме того, также работает код, предложенный SSarma.