| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Добовление данных в таблицы. |
| Автор: Rapalex 10.5.2007, 09:39 |
| Есть у меня дата сет (сгенереный мастером, типизированый), кидаю его на форму, к одной из таблиц прикручиваю биндинг сёрс. К примеру, хочю добавить пару строк в таблицы. Делал я это через биндинг сёрс, и всё работало, а код не нравился, а щяс добовляю порядка 80 и не всё гладко получается. А если добовлять прямо втаблицы дата сета (код получается симпотный) но в дата сете данные не обновляются, что делать? |
| Автор: tol05 10.5.2007, 09:46 |
| DataSet.AcceptChanges() вызывал? Код можешь показать? |
| Автор: Rapalex 10.5.2007, 12:04 |
| Да нет, не знал что вызывать, спс, теперь знаю. |
| Автор: Rapalex 11.5.2007, 12:26 |
| А EndEdit а биндинг сёрса что делает? Она тоже в паре с какойто функцией работает? |
| Автор: tol05 11.5.2007, 12:54 | ||
| Дело в том, что каждая из строк в любой момент времени имеет конкретное состояние: неизмененная, измененная, добавленная, удаленная и т.д. Так вот, вызовом DataSet.AcceptChanges() ты меняешь статусы этих строк - фиксируешь их.
Если его не вызывать, то статусы строк не изменятся и их можно будет проапдейтить в базу методом DataAdapter.Update() - при его вызове адаптер просматривает все строки и если их статус - не Unchanged, изменяет их в базе. Но если ты его уже вызвал, апдейта не будет - адаптер не увидит измененных строк! DataSet.AcceptChanges() обычно вызывают после апдейта базы. EndEdit тоже фиксирует все изменения, но только те, что были сделаны от BeginEdit до EndEdit. AcceptChanges() - вообще все изменения строк (которые не имеют статуса Unchanged) |
| Автор: Rapalex 14.5.2007, 10:09 |
| СПАСИБИЩЕ тебе огромное. Земляк, работы много от того и не всегда топики красиво закрываю. |