Построчное сохранеие в гриде! Как? (VS 2005)

Михаил Бор
Дата: 21.09.2005 12:06:48
Привет, всем! Задача сохранять ввод пользователя в грид (DataGridView) построчно в «Дельфи» решалась просто. При смене текущей строки визуальный контрол перед(!!!) перемещением на другую строку, вызывал метод сохранения у данных (Query), который и порождал нужные для программиста события:
• Перед сохранением (BeforePost) – задаём вопрос «Сохранить»
• После сохранения (AfterPost) – если отсоединённые данные (UpdateSQL) то сохраняем в базу
• Ошибка сохранения (PostError)- переводим сообщение об ошибке сервера на язык пользователя.
Теперь в VS 2005 мы имеем связку «DataGridView», «BindingSource» и «DataSet» в котором находятся таблицы. Если принять, что если нет визуального аналога элемента то его событиями лучше не пользоваться. Тогда получается парадокс. Нам нужны события перед (Changing), но у BindingSource и у грида их нет! Так что делать? Буду очень благодарен за любую информации на эту тему!
Fogfox
Дата: 21.09.2005 17:34:29
На сколько я понимаю, необходимо просто отслеживать измененные записи в DataSet и на основе этой информации работать.
Михаил Бор
Дата: 21.09.2005 18:34:54
Привет! У dataset нет событий типа changing!!! У него есть события после перехода на другую строку! То есть там ничего сделать нельзя! Нужны типа BeforePost!!!!
Михаил Бор
Дата: 22.09.2005 10:41:39
У Datatable есть два события типа Before это
DataTable.ColumnChanging - Occurs when a value is being changed for the specified DataColumn in a DataRow. Здесь можно проверить значение. Можно это делать и на DataGridViewCellValidaing. Но главное если мы на событии DataTable.ColumnChanging зададим вопрос "Сохранить?" то всё слолмается при перерисовке! Не на всяком собитии можно открывать дополнительные окна! Так что же делать?
Артем1
Дата: 22.09.2005 10:50:44
Еще есть полезные события у CurrencyManager. Правда это касается 1.1 фреймворка. Не знаю, произошли ли какие измнения в биндинге в 2005 студии.
Михаил Бор
Дата: 23.09.2005 12:39:06
Его заменили на BindingSource, с которым мы и работаем! У него события после! На сегодя есть решение. Но общий вопрос - надо ли сохранять данные построчно в базу на сервере и тем самым нагонять трафик, или дать возможность пользователю обработать таблицу а потом разом её запихнуть на SQL Server. В последнем случае вопрос - как донести до пользователя какие строчки сохранились, а какие нет и почему? Есть ли реальные приложения , которые так работают?