powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Принцип организации работы с данными
21 сообщений из 46, страница 2 из 2
Принцип организации работы с данными
    #38914596
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ишаку ясно что валидация записи (колумна) не зависит от грида и т.д. (хотя нормальный контрол имеет собственный буфер и умеет валидироват сам, до изменения сорса своего)
а вот момент валидации (т.е. вызов ЕндЕдит, КанслЕдит и т.д. для записи или колумна) может инициироваться именно ГУИ - для того гуи и нужен
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38914623
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей,

в конце пути придешь к таким или поожим вещам
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38914624
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosskyANA,

ишаку ясноИшаку может и ясно, а новичкам обычно нет и ТСу походу тоже :)
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38914625
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

skyANAУ DataRow есть метод RejectChanges.
Этот метод нельзя вызывать внутри события DataTable RowChanging
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38914630
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль СергейskyANA,

skyANAУ DataRow есть метод RejectChanges.
Этот метод нельзя вызывать внутри события DataTable RowChangingА зачем его вызвать там? Опишите конкретную задачу.
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915149
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

ViPRosв конце пути придешь к таким или поожим вещам
спасибо. К чему-то прийду :)

skyANAА зачем его вызвать там? Опишите конкретную задачу.
я думал(теперь вижу, что ошибочно), что от событий интерфейса можно уйти практически вообще, перенеся обработку на события Datatable. Ну, например, идет попытка сохранения записи в таблицу, срабатывает событие DataTable RowChanging, а я на нем проверю какое-нибудь условие(или оценю, что введено в соседние поля, или пройдусь по каким-то связанным записям других таблиц), и в зависимости от условия отменю событие сохранения.
Но вижу, что отменить событие RowChanging нельзя. Поэтому действительно придется вызывать подобные проверки отталкиваясь от событий интерфейса формы
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915380
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей,

e.Action = Cancel
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915387
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все можно
просто юзер принимает решение сохранить или нет
а ты валидируешь
хоть в интерфейсе хоть где если это интерфейсная задача, а если нет то прогер решает сохранить или нет
или тупо ничего не проверяя сохраняет, а в событии отменяет или принимает
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915394
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

соврал :) CancelEdit
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915402
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять соврал
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915410
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

спасибо, я подумаю, как организоваться.

Только все-таки отменить событие DataTable.RowChanging нельзя, кроме как возбуждением исключения.
отменить изменения можно на событии DataTable.RowChanged.
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915416
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергейкроме как возбуждением исключения.
Ой, перестаньте использовать этот глагол в данном контексте ради Бога!
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915419
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей,

ага, скорее всего
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915429
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronВакшуль Сергейкроме как возбуждением исключения.
Ой, перестаньте использовать этот глагол в данном контексте ради Бога!
не знаю, чего это слово на язык просится :)
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915432
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль СергейAxeleronпропущено...

Ой, перестаньте использовать этот глагол в данном контексте ради Бога!
не знаю, чего это слово на язык просится :)
Эта... Как там дедушка Фрейд говорил?
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915472
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей,

вспоминаю, там BeginEdit() помогал обойти некоторые вещи внутри этого события (EndEdit() при этом низзя)
оказалось что я его нигде не пользую - горел значит тоже :)
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915478
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
во горел

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public void СтатусКонтракта(DataRowChangeEventArgs e)
        {
            if (e.Row.RowState != DataRowState.Detached)
            {
                DataRow dr = e.Row.GetParentRow("Контракт_История изменения статуса{Контракт}");
                if (dr != null)
                {
                    var l = e.Row.Table.AsEnumerable().Where(s => !(s.RowState == DataRowState.Deleted || (e.Action == DataRowAction.Delete && ((Guid)s["ИД"]).Equals((Guid)e.Row["ИД"])))).OrderBy(s => ((DateTime)s["Дата регистрации"])).LastOrDefault();
                    if (l != null)
                    {
                        dr.BeginEdit(); 
                        //без этого тут выдает ошибку (типа низзя EndEdit в onDataRowChangeEvent

                        dr["Статус контракта (договор)"] = l["Статус контракта (договор)"];
                        dr["Дата присвоения статуса"] = l["Дата регистрации"];
                    }
                }
            }
        }
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915563
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль СергейViPRos,

ViPRosв конце пути придешь к таким или поожим вещам
спасибо. К чему-то прийду :)

skyANAА зачем его вызвать там? Опишите конкретную задачу.
я думал(теперь вижу, что ошибочно), что от событий интерфейса можно уйти практически вообще, перенеся обработку на события Datatable. Ну, например, идет попытка сохранения записи в таблицу, срабатывает событие DataTable RowChanging, а я на нем проверю какое-нибудь условие(или оценю, что введено в соседние поля, или пройдусь по каким-то связанным записям других таблиц), и в зависимости от условия отменю событие сохранения.
Но вижу, что отменить событие RowChanging нельзя. Поэтому действительно придется вызывать подобные проверки отталкиваясь от событий интерфейса формыКакие-то сферические рассуждения в вакууме.

Почитайте что-ли когда срабатывает RowChanging, когда RowChanged, а когда валидация.

Изменилась строка, вы её проверили, криво изменилась. Отменили изменения. В чём проблема?
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915565
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особенно для случая без UI RowChanging на фиг не нужно.
Прилетела к нам откуда-то пачка строк (объектов). Мы их тупо по одной проверили, половина оказалась не валидной и мы не стали сохранять их в БД.
При чём тут RowChanging?
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915569
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

skyANAКакие-то сферические рассуждения в вакууме.
ну где-то так
...
Рейтинг: 0 / 0
Принцип организации работы с данными
    #38915570
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

при том что при ров ченджинг могут вычисляться некоторые пля автоматом, а это может аукнутся на других вычислимых полях других таблиц и т.д.
всю эту фигню у прогера не хватит жопу сделать
а там готовый механизм
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Принцип организации работы с данными
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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