Создание набора данных из другого набора данных - PullRequest
2 голосов
/ 07 мая 2010

У меня есть клиент-серверный проект (небольшой проект для компаний на C #), и на сервере есть DataSet с некоторыми таблицами (по некоторым причинам база данных отсутствует, поэтому мы сохраняем DataSet в виде файла XML).
когда клиенты подключаются к серверу, сервер должен отправлять некоторую информацию клиенту в зависимости от его привилегий, а некоторые клиенты должны добавлять или удалять из набора данных на сервере.

Я имею в виду создание нового небольшого набора данных и отправку его клиенту (в виде xml), но я не знаю, как создать новый набор данных с конкретными таблицами и строками (я пытался использовать Linq для набора данных, но ничего не получалось). < бр />
Мои вопросы: как я могу это сделать и является ли это хорошим решением для отправки информации клиентам? Можете ли вы предложить лучший сценарий для отправки данных клиентам (я имею в виду, вместо создания нового набора данных).

Ответы [ 4 ]

2 голосов
/ 07 мая 2010

Загрузите DataSet, а затем сохраните его под новым именем. Это ваш новый набор данных. Вы можете загрузить его отдельно.

Как только вы это сделаете, мы предположим, что новый набор данных называется ds. Вы можете использовать ds.Tables.Remove (string) для удаления целых таблиц и ds.Tables [string] .Columns.Remove (string) для удаления отдельных столбцов. После удаления ненужных элементов таблицы вы можете удалить datarow с помощью ds.Tables [string] .Rows.Remove (int).

1 голос
/ 07 мая 2010

Если вы отправляете данные пользователям для их анализа, просмотра, составления отчетов ... то вы должны использовать Excel или CSV в качестве выходных данных.Существует множество способов отправить данные обратно пользователю, которые будут открываться непосредственно в Excel, и в настоящее время я чаще всего использую NPOI .Когда я начал использовать NPOI, я нашел много примеров перехода от DataTable к Excel.NPOI также поддерживает несколько листов, если вы решили вывести DataSet в Excel.

1 голос
/ 07 мая 2010

Используйте метод DataSet.Merge (DataTable).

Например,

DataSet theDataSetToPassAround = new DataSet();
theDataSetToPassAround.Merge(youDataSet.Table[indexOfTheTableToPassAround]);

Метод Merge также имеет перегрузку, которая принимает массив DataRows, если хотите.

0 голосов
/ 07 мая 2010

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

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