Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Для чего тогда нужны методы? Поясните пожалуйста! Добавлено: 19.09.03 20:24  

Автор вопроса:  skill | Web-сайт: qqwe

Если у  меня они не работают:

BegineEdit(),EndEdit(),NewRow(),AcceptChange(),RejectChange() и все то, что касается редактирование БД через DataSet, а конкретно его "виртуальной талицы"?

 

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 21.09.03 17:08
Насчёт BegineEdit(),EndEdit(),AcceptChange(),RejectChange() я не знаю,
однако догадываюсь, что это для так сказать пакетного изменения
данных, типа сначала даём команду начала изменения (наверное,
BeginEdit), потом производим нужные изменения. Затем, например,
спрашиваем юзера, надо ли сохранять изменения. Если он скажет "да", то
AcceptChanges, если нет - RejectChanges. Подробнее - читайте MSDN или
доки из .NET Framework SDK.

Ну а NewRow - вещь нужная и полезная. Я так полагаю, Вы думаете, что
при вызове NewRow в DataTable появится новая строка? Ничего подобного!
NewRow _возвращает_ строку. Потом её нужно заполнить данными и
засунуть в коллекцию Rows Вашей таблицы методом Add. Например, так:

Dim dr As New DataRow = dt.NewRow()
dr("поле1")="123"
dr("поле2")=321
dt.Rows.add (dr)

Ответить

Номер ответа: 2
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #2
Добавлено: 26.09.03 12:32
Решил заглянуть в MSDN, чтобы почитать об этом... И обнаружил, что это
вообще методы разных классов: BeginEdit и EndEdit - методы DataRow,
а AcceptChanges и GetChanges - методы DataSet'а...

Не помню, говорил ли я про GetChanges... Этот метод позволяет получить
все изменённые записи в отдельный DataSet.

Насчёт BeginEdit и EndEdit:

Use the BeginEdit method to put a DataRow into edit mode. In this mode, events are temporarily suspended allowing the user to make multiple changes to more than one row without triggering validation rules. For example, if you need to ensure that the value of the column for a total amount is equal to the values for the debit and credit columns in a row, you can put each of the rows into edit mode to suspend the validation of the row values until the user attempts to commit the values.

Примерный перевод: BeginEdit используется для перевода DataRow в
состояние редактирования. В этом режиме события временно
приостанавливаются, позволяя юзеру произвести несколько изменений без
запуска проверки правил.

То есть, я так понимаю, если в DataSet определены какие-нть ключи,
например, UniqueConstraint, то после изменения каждой записи врубается
проверка соответствтвия полей правила ключа (например, Unique
проверяет значение поля на уникальность). Если же нам надо изменить
сразу пачку записей, то будут сильные тормоза. Поэтому придумана такая
система. Сначала вызываеи BeginEdit для изменяемых записей, делаем что
хотим с записями. Потом либо вызываем для записей EndEdit, либо
вызываем метод AcceptChanges датасета (он сам вызовет EndEdit у
строк). Вроде так, если чего напутал, исправьте...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам