powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два BindingSource связанных через DataRelation и AddNew() в дочернем
11 сообщений из 11, страница 1 из 1
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38262716
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!

Есть два BindingSource (bs1 и bs2) связанных через DataRelation.

Если добавляю в в дочерний несколько записей bs2.AddNew()
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
bs2.AddNew()
(bs2.Current as DataRowView).Row["поле1"] = "111111";
(bs2.Current as DataRowView).Row["поле2"] = "111111";
bs2.EndEdit();
bs2.AddNew()
(bs2.Current as DataRowView).Row["поле1"] = "222222";
(bs2.Current as DataRowView).Row["поле2"] = "222222";
bs2.EndEdit();
bs2.AddNew()
(bs2.Current as DataRowView).Row["поле1"] = "333333";
(bs2.Current as DataRowView).Row["поле2"] = "333333";
bs2.EndEdit();



Все работает и если посылаю обновление (через DataAdapter) уходит в базу.
Но есть проблема, хочется перемещаясь по головному bs1 добавлять в подчинённый записи не фиксируя изменения через bs2.EndEdit(); дабы при необходимости через bs2.CancelEdit(); всех их отменить.
Если убираю все bs2.EndEdit(); то при выполнении очередного bs2.AddNew() предведущий фиксируется автоматически (по всей видимости автоматом происходит bs2.EndEdit()) и bs2.CancelEdit() для них не срабатывает. Как производить несколько bs2.AddNew() не фиксируя между ними изменения дабы иметь возможность откатиться к исходному варианту.
В принципе тоже самое интересно и для случая с bs2.RemoveCurrent()
Подозреваю что есть свойство отвечающее за эту автоматическую фиксацию, но найти пока не смог.

Спасибо.
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38262722
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

попробую сейчас через Insert, к нему не написано в доке что он автоматом вызывает EndEdit
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38262737
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не получается, при попытке вставить пишет что внешние объекты в этот листь ставлять нельзя.
как быть?
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38262741
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может есть возможность сбросить изменения в bs2 даже после EndEdit. В базу то я ещё изменения не отправлял через DataAdapter ?
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38263060
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataSet.RejectChanges - метод
DataTable.RejectChanges - метод

P.S.: Вам бы руководство какое прочитать для начала, или книжку.
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38263081
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Поверьте, читаю непрерывно и книжек накупил достаточно. Но надо признать, именно работа с базами отражена довольно скудно. Особенно когда речь о Binding и методам работы с ним, все как то на уровне 2003 студии. По дельфям, например, книг еще меньше, но это компенсируется более низким порогом вхождения и более логичной, на мой взгляд, структурой объектов и названий методов. Но, пожелания клиента закон, потому штурмуем шарп. Да и лишний язык в запаснике всегда на пользу. Удручает только что объем кода почти в двое превышает дельфийный (на одинаковых задачах). Хотя, возможно, это следствие неопытности. Ну ничего, будем учить, когдато количество знаний перерастет к качество кода. Программровать всетаки умеем а с шарпом разберемся.
А вообще, лучьше фокса для баз ничего не видел, жалко его перестала микрософт развивать.
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38263596
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail TchervonenkoskyANA,
Поверьте...
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38315015
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikhail Tchervonenko, по поводу скудной информации поддерживаю
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38315436
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поддерживаю skyANA по поводу
AcceptChanges
RejectChanges

EndEdit всего лишь сбрасывает изменения в низ лежащий источник данных.

и не надо так делать
Код: c#
1.
2.
(bs2.Current as DataRowView).Row["поле1"] = "333333";
(bs2.Current as DataRowView).Row["поле2"] = "333333";
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38344650
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно у знать почему у меня не прокатывает вот так:
Код: c#
1.
2.
DataRowView drvTemp = (DataRowView)bs.Current;
int temp = drvTemp["Код"];



а приходится записывать вот так:
Код: c#
1.
2.
DataRowView drvTemp = (DataRowView)bs.Current;
temp = Convert.ToInt32(drvTemp["Код"].ToString());



потому что пише что: Ошибка 1 Не удается неявно преобразовать тип "object" в "int". Существует явное преобразование (возможно, пропущено приведение типов)

хотя в примерах кабы пишут что вроде можно http://msdn.microsoft.com/ru-ru/library/0k5w061k.aspx ;
...
Рейтинг: 0 / 0
Два BindingSource связанных через DataRelation и AddNew() в дочернем
    #38344660
megazoid007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
megazoid007, ой извиняюсь ни в эту тему
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Два BindingSource связанных через DataRelation и AddNew() в дочернем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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