Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Добовление данных в таблицы.


Автор: Rapalex 10.5.2007, 09:39
Есть у меня дата сет (сгенереный мастером, типизированый), кидаю его на форму, к одной из таблиц прикручиваю биндинг сёрс.

К примеру, хочю добавить пару строк в таблицы.

Делал я это через биндинг сёрс, и всё работало, а код не нравился, а щяс добовляю порядка 80 и не всё гладко получается.
А если добовлять прямо втаблицы дата сета (код получается симпотный) но в дата сете данные не обновляются, что делать?

Автор: tol05 10.5.2007, 09:46
DataSet.AcceptChanges() вызывал? Код можешь показать?

Автор: Rapalex 10.5.2007, 12:04
Да нет, не знал что вызывать, спс, теперь знаю.  smile 

Автор: Rapalex 11.5.2007, 12:26
 smile  Я оказывается не так добовлял строки, всё заработало, как не странно и  без DataSet.AcceptChanges(), только ятак и не понял что эта функция делает. А она в паре с какойто другой работает?

А EndEdit а биндинг сёрса что делает? Она тоже в паре с какойто функцией работает?

Автор: tol05 11.5.2007, 12:54
Дело в том, что каждая из строк в любой момент времени имеет конкретное состояние: неизмененная, измененная, добавленная, удаленная и т.д.
Так вот, вызовом DataSet.AcceptChanges() ты меняешь статусы этих строк - фиксируешь их.
Цитата

When you call AcceptChanges on the DataSet, any DataRow objects still in edit-mode end their edits successfully. The RowState property of each DataRow also changes; Added and Modified rows become Unchanged, and Deleted rows are removed.

Если его не вызывать, то статусы строк не изменятся и их можно будет проапдейтить в базу методом DataAdapter.Update() - при его вызове адаптер просматривает все строки и если их статус - не Unchanged, изменяет их в базе.
Но если ты его уже вызвал, апдейта не будет - адаптер не увидит измененных строк!
DataSet.AcceptChanges() обычно вызывают после апдейта базы.
EndEdit тоже фиксирует все изменения, но только те, что были сделаны от BeginEdit до EndEdit. AcceptChanges() - вообще все изменения строк (которые не имеют статуса Unchanged)

Автор: Rapalex 14.5.2007, 10:09
СПАСИБИЩЕ тебе огромное.

Земляк, работы много от того и не всегда топики красиво закрываю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)