Вопрос
Для чего нужны методы BegineEdit и EndEdit класса DataRow, я понял (согласно их описанию).
Проблема такова: при применении их объектом DataRow они не работают, т.е. не редактируют реальную БД, тоже самое касается и добаления новых колонок (DataTable.Columns.Add) и т.д., т.е. всех методов, касающихся редактирования БД.
Получатся так, что измениея происходят где-то во временных представлениях БД и никак не влияют на реальную. Путей синхронизации реальной и виртульной БД я не нашел. Если эти методы существуют, то как-то они должны применяться и работать? А-то получается что DataSet нужен лишь для представления или как-бы отображения данных со своими правилами?
Ответ
Они по идее НЕ ДОЛЖНЫ редактировать источник данных! DataSet — это набор отсоединенных данных. Принцип работы с данными в ADO .NET строится примерно так:
1. Получаем данные из исчтоника в Dataset. Это делается с помощью объекта DataAdapter его методом Fill.
2. Всячески извращаемся с данными в Dataset: показывам юзеру, читаем, изменяем, добавляем новые строки и т.д. Это делается, собственно, через методы/свойства самого Dataset, в том числе, коллекция Rows.
3. Если надо, то все изменения закидываем назад в базу данных. Это также делается с использованием DataAdpater, но уже его методом Update. Причем нужно не забыть установить соответствующие свойства UpdateCommand, InsertCommand, DeleteCommand, которые будут использованы для изменения, добавления и удаоения записей в БД, соответственно.
Copyright 2000-2004 Сообщество Чайников
Контактная информация