
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.04.2005, 20:48
|
|||
|---|---|---|---|
|
|||
Проблема с обновлением базы(применение и отмена изменений) |
|||
|
#18+
Есть датасет в котором есть родительская и дочерняя таблица. Каждая запись родительской таблицы (и соответственно связанные с ней дочерние) редактируются в своем экземпляре форме. При сохранении изменений, данные должны сбрасываться в базу(есть два датаадаптера - для родительской и дочерней). При отмене должны просто отменяться в датасете. Вопрос стоит в том как это правильно реализовать, т.к. столкнулся с некоторыми сложностями: 1)Если просто обновлять через датаадаптер передавая ему таблицу, то он сбросит данные, которые редактируются в других формах и не были сохранены 2)Пытаюсь сделать обновление вручную: currentBillRow.EndEdit(); FormMain frmMain=(FormMain)this.MdiParent; DataRow[] rows1; DataRow[] rows2; rows1=dsMReport.Bill.Select("BillId="+currentBillRow.BillId,"BillId",DataViewRowState.ModifiedCurrent | (DataViewRowState.Deleted | DataViewRowState.Added)); rows2=dsMReport.BillContent.Select("BillId="+currentBillRow.BillId,"BillId",DataViewRowState.ModifiedCurrent | (DataViewRowState.Deleted | DataViewRowState.Added)); daBill.Update(rows1); daBillContent.Update(rows2); currentBillRow.AcceptChanges(); И отменение изменений тоже вручную: currentBillRow.EndEdit(); DataRow[] rows=dsMReport.BillContent.Select("BillId="+currentBillRow.BillId,"",DataViewRowState.ModifiedCurrent | (DataViewRowState.Deleted | DataViewRowState.Added)); foreach(DataRow row in rows) { row.RejectChanges(); } currentBillRow.RejectChanges(); Вроде бы все нормально, но натыкаемся на следующие грабли: если на одной форме отменить изменения, а на другой сохранить, то при сохранении вылетает експешен "This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row." хотя в массивах лежат правильные строки. В чем может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.04.2005, 21:43
|
|||
|---|---|---|---|
Проблема с обновлением базы(применение и отмена изменений) |
|||
|
#18+
Во-первых, обновляйте отдельно deleted, modified и added записи. Во-вторых, что у вас является Master а что Detail Хотелось бы взглянуть, код редактирования и "сохранения" в других формах. + непомешала бы структура таблиц Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.04.2005, 22:05
|
|||
|---|---|---|---|
|
|||
Проблема с обновлением базы(применение и отмена изменений) |
|||
|
#18+
SaВо-первых, обновляйте отдельно deleted, modified и added записи. Пробывал не помогает. SaВо-вторых, что у вас является Master а что Detail Bill - master, BillContent - detail Таблицы: Agent(AgentId,Name) BillType(BillTypeId,Name) Material(MaterialId,Name,UnitId) Unit(UnitId,Name) Bill(BillId,BillTypeId,AgentId,Number,Date,VAT,VATValue) BillContent(BillId,MaterialId,Price,Count,Cost,PriceVAT) Отношения: AgentToBill BillTypeToBill UnitToMaterial MaterialToBillContent Поля Cost и PriceVAT вычисляемые SaХотелось бы взглянуть, код редактирования и "сохранения" в других формах Имеется ввиду не в других формах, а вдругих экземплярах этой формы. Т.е. ситуация когда редактируется(создано две новых) две накладные и в одной изменеия отменяются, а в другой применябтся вылетает такой вот ексепшен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.04.2005, 02:35
|
|||
|---|---|---|---|
Проблема с обновлением базы(применение и отмена изменений) |
|||
|
#18+
NordS Имеется ввиду не в других формах, а вдругих экземплярах этой формы. Т.е. ситуация когда редактируется(создано две новых) две накладные и в одной изменеия отменяются, а в другой применябтся вылетает такой вот ексепшен. А насколько логически обоснованно использование нескольких экземпляров форм, когда могут произойти такие накладки? + покажите код как делаются изменения. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=17&tablet=1&tid=1353768]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 372ms |

| 0 / 0 |
