powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
6 сообщений из 6, страница 1 из 1
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37372089
Фотография Фесенко Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
С помошью TableAdapter Configuration Wizard создал свой класс Strahovaya. На одном из шагов создания Он спросил у меня создавать ли команды delete,...,. я подтвердил. Теперь у меня есть свойства DeleteCommand и странный метод Delete. Странный, потому что я не понимаю его назначение. У постоенного класса есть свой метод Update:
Код: plaintext
1.
2.
3.
        public virtual int Update(Org.StrahovayaDataTable dataTable) {
            return this.Adapter.Update(dataTable);
        }
Вот в чём вопрос:
Что поисходит при вызове Adapter.Update ? просто по порядку вызываются DeleteCommand, UpdateCommand, InsertCommand или по порядку вызываются построенные автоматически delete, update, insert?
Отладка (Debug) не входит (Step Into) внутрь Adapter.Update , несмотря на то что я убрал
Код: plaintext
//[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
Поэтому узнать что вызывается я не смог.
Скажите что вызывается или подскажите как узнать. Буду признателен
...
Рейтинг: 0 / 0
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37373224
Фотография Фесенко Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
закоментил метод delete, сгенерированный автоматически -> запустил программу -> удалил произвольную запись -> вызвал update.
В результате изменения на сервере произошли. Следовательно метод delete в удалении не участвовал. Следовательно участвует команда DeleteCommand. такой вывод я сделал самостоятельно. Но зачем тогда нужен метод Delete, который создан автоматически мастером... Склонен думать что это фрагмент политики Microsoft - писать лишнее и ненужное
...
Рейтинг: 0 / 0
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37373797
Leona1521
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фесенко Олег,

да блин ьы можешь пользоваться и отдельно методом delete
не хошь не пользуйся, каждая моська норовить укусить слона, как ж МС винвоат перед ними
пиши свое, не пользуйся типизированным датасет
...
Рейтинг: 0 / 0
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37374115
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Фесенко ОлегЧто поисходит при вызове Adapter.Update ? просто по порядку вызываются DeleteCommand, UpdateCommand, InsertCommand или по порядку

У каждой записи в DataTablе до вызова команды AcceptChanges строки
имеют свойство Row.RowState типа DataRowState.

Возможный статус:
Код: plaintext
1.
2.
3.
4.
Added
Deleted
Modifired
Unchanged
Detached

Для каждой строки в зависимости от ее DataRowState вызывается своя команда из DataAdapter

Для Added - DataAdapter.InsertCommand
Для Deleted - DataAdapter.DeleteCommand
Для Modifired - DataAdapter.UpdateCommand
Для Detached - это про отвязанную от Датасета строки - не знаю точно, что делается, так как ни разу этим не пользовался.
Для Unchanged - ничего не вызывается

Вызов AcceptChanges неявно реализуеться также при вызове BindingSourse.EndEdit() и DataGridView.EndEdit()

Для того, что бы весь этот механизм работал, должны быть определены событияна изменение строки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
                myDatable.RowChanged += new DataRowChangeEventHandler(my_RowChanged);
                myDatableRowDeleted += new DataRowChangeEventHandler(my_RowChanged);


...

my_RowChanged(object sender, DataRowChangeEventArgs e) {
myDataTableAdapter.Update(myDataTable);
}
Это простейший, но и наиболее часто используемый способ

Возможно, что кому-то надо будет различать события Changed и Deleted, тогда нужно будет делать для них разные обработчики.
...
Рейтинг: 0 / 0
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37376263
Фотография Фесенко Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо товарищи за консультацию. Особенно Cat2
2 Leona1521 : Ты имеешь в виду "ручками" описывать DataSet? Я думал об этом. Не совсем, чтобы "слабо", но просто я визуал. К тому же больше программист VBA и поэтому пока мне так удобнее. Вспоминается реплика из "Золотого телёнка": если мастер конфигурации DataSet есть, то должен им кто-то пользоваться. Другое дело, что я убелился в его громоздкости. Наверняка есть плагины и надстройки построения более "лёгкого" DataSet... буду разбираться
Ещё раз спасибо за направленный ответ.
...
Рейтинг: 0 / 0
Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
    #37377557
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Фесенко ОлегДругое дело, что я убелился в его громоздкости
В чем громоздкость-то?
Вы еще с адаптерами не разобрались, а уже недовольны чем-то

Как правило автосгенерированые команды в адаптера все равно надо ручками переписывать. Сгенерированный код не часто удовлетворяет надобностям.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Зачем нужны методы Delete, Insert, созданные мастером "TableAdapter configuration Wizard"
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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