powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обработка удаленных другим пользователем записей.
3 сообщений из 3, страница 1 из 1
Обработка удаленных другим пользователем записей.
    #35566324
Life
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу программу на C# в Visual Studio 2005, .Net Framework 2.0.
Каким образом сохранить изменения в DataSet когда записи на клиенте, помеченные как deteted, на сервере уже удалены другим пользователем? С обновленными записями помогает метод Merge, а с удаленными как?
...
Рейтинг: 0 / 0
Обработка удаленных другим пользователем записей.
    #35566723
Фотография WYPMAH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Life
а получить актуальные данные от сервера БД нельзя?
...
Рейтинг: 0 / 0
Обработка удаленных другим пользователем записей.
    #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
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обработка удаленных другим пользователем записей.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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