Лучший способ использовать набор данных в C # - PullRequest
1 голос
/ 28 марта 2012

Мы создали собственный набор данных и заполнили его некоторыми данными.

Перед добавлением данных мы добавляем столбцы в набор данных следующим образом

DataSet archiveDataset = new DataSet("Archive");
DataTable dsTable = archiveDataset.Tables.Add("Data");
dsTable.Columns.Add("Id", typeof(int));
dsTable.Columns.Add("Name", typeof(string));
dsTable.Columns.Add("LastOperationBy", typeof(int));
dsTable.Columns.Add("Time", typeof(DateTime))

После создания набора данных мы заполняем значения следующим образом

 DataRow dataRow = dsTable.NewRow();
 dataRow["Id"] = source.Id;
 dataRow["Name"] = source.Name;
 dataRow["LastOperationBy"] = source.LastOperationBy;
 dataRow["Time"] = source.LaunchTime;

Есть ли лучший и управляемый способ сделать это. я могу сделать код более простым для написания, используя enum или что-то еще, чтобы уменьшить усилия?

Ответы [ 4 ]

3 голосов
/ 28 марта 2012

Вы можете попробовать использовать Типизированный набор данных .

Это должно избавить от ["<column_name>"] уродства.

Если набор данных имеет структуру, подобную таблицам вбазы данных, тогда Visual Studio действительно очень просто создать: просто нажмите Добавить -> Новый элемент где-нибудь в решении и выберите DataSet .VS покажет дизайнера, куда вы можете перетаскивать таблицы из проводника вашего сервера.

Обновление (после ответа на комментарий Саймона): Типизированный набор данных фактически является XSD (определением схемы XML).В похожем случае я сделал следующее:

  • создал пустой набор данных (используя Добавить -> Новый элемент -> Набор данных )
  • открыл вновь созданный файл с помощью текстового редактора (по умолчанию, в VS он показывает конструктор XSD)
  • вставьте созданный мной XSD

Вы также можете использовать конструктор для создания схемы.

1 голос
/ 28 марта 2012

Учитывая ваш комментарий "Я использую набор данных для экспорта данных в файл XML", я рекомендую использовать другую технологию, такую ​​как

Или, что еще лучше, не имеет для XML (и вы хотите, чтобы только иерархически читаемый текст рассматривал JSON вместо http://james.newtonking.com/pages/json-net.aspx

0 голосов
/ 28 марта 2012

Вы можете использовать Reflection.Другой вариант - использовать EntityFramework или NHibernate для сопоставления имен столбцов и столбцов структуры данных, а затем избегать использования этого кода для заполнения каждого поля вручную.Но они добавят больше сложности.Кроме того, производительность вашего кода лучше.

0 голосов
/ 28 марта 2012

Вы можете связать набор данных двумя способами: первый - использование базы данных, второй - добавление вручную. После создания столбца для набора данных вы можете добавить, используя Loops, вы можете добавить его, если у вас есть 10000 записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...