Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обработка удаленных другим пользователем записей. / 3 сообщений из 3, страница 1 из 1
29.09.2008, 20:54
    #35566324
Life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка удаленных другим пользователем записей.
Пишу программу на C# в Visual Studio 2005, .Net Framework 2.0.
Каким образом сохранить изменения в DataSet когда записи на клиенте, помеченные как deteted, на сервере уже удалены другим пользователем? С обновленными записями помогает метод Merge, а с удаленными как?
...
Рейтинг: 0 / 0
30.09.2008, 09:16
    #35566723
WYPMAH
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка удаленных другим пользователем записей.
Life
а получить актуальные данные от сервера БД нельзя?
...
Рейтинг: 0 / 0
30.09.2008, 09:27
    #35566743
Life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработка удаленных другим пользователем записей.
Я и получаю актуальные данные в отдельный датасет. Потом выполняю метод Merge. Он добавляет к основному датасету новые и редактирует измененные записи, но вот удаленные он не удаляет. Кроме как вручную пройтись циклом и удалить их мне больше что-то ничего в голову не приходит.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
private static void MegreWithDelete(SprBudgetSprEditDataSet savePointDataset, SprBudgetSprEditDataSet newData)
        {
            //удаляем из savePoint помеченные на удаление записи, которых нет в newData
            //удаляем строки
            foreach (SprBudgetSprEditDataSet.spr_budget_plan_strRow strRow in
                savePointDataset.spr_budget_plan_str.Select("", "", DataViewRowState.Deleted))
            {
                if (newData.spr_budget_plan_str.FindByid_vidid_grid_str((byte)strRow["id_vid", DataRowVersion.Original]
                    , (byte)strRow["id_gr", DataRowVersion.Original]
                    , (short)strRow["id_str", DataRowVersion.Original]) == null)
                {
                    savePointDataset.spr_budget_plan_str.Rows.Remove(strRow);
                }
            }
            //удаляем группы
            foreach (SprBudgetSprEditDataSet.spr_budget_plan_grRow grRow in
                savePointDataset.spr_budget_plan_gr.Select("", "", DataViewRowState.Deleted))
            {
                if (newData.spr_budget_plan_gr.FindByid_vidid_gr((byte)grRow["id_vid", DataRowVersion.Original],
                    (byte)grRow["id_gr", DataRowVersion.Original]) == null)
                {
                    savePointDataset.spr_budget_plan_gr.Rows.Remove(grRow);
                }
            }
            //удаляем виды
            foreach (SprBudgetSprEditDataSet.spr_budget_plan_vidRow vidRow in
                savePointDataset.spr_budget_plan_vid.Select("", "", DataViewRowState.Deleted))
            {
                if (newData.spr_budget_plan_vid.FindByid_vid((byte)vidRow["id_vid", DataRowVersion.Original]) == null)
                {
                    savePointDataset.spr_budget_plan_vid.Rows.Remove(vidRow);
                }
            }
            //объединяем отредактированные данные с только что выбранными из БД
            savePointDataset.Merge(newData);
        }
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обработка удаленных другим пользователем записей. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]