Войти

Показать полную графическую версию : [решено] Удаление строки DataGridView -> buildingSource -> БД


Sidewalker
29-04-2012, 11:12
Имеется созданная в дизайнере БД (Entity), данные нормально в DataGridView отображаются из бд ( this.clientsSetTableAdapter.Fill(this.dataSet1.ClientsSet); ), пытаюсь по нажатию на кнопку удалить строку из БД. И, учитывая что у меня многое сделано "дизайнером", а не руками, без различных SqlConnection connect = ..., запутался в одном месте. Гугл не спас.


private void button1_Click(object sender, EventArgs e)
{
clientsSetBindingSource.RemoveCurrent();
clientsSetBindingSource.EndEdit();
this.Validate();
this.clientsSetBindingSource.EndEdit();
this.tableAdapterManager1.UpdateAll(this.dataSet1); <- ошибка (при запуске): Для элемента Update требуется действительный DeleteCommand при передаче коллекции DataRow с удаленными строками.


Всё что в коде написано нагуглил. Также понял, что:
- по всей видимости у меня не создалась часть команд из updateCommand, deleteCommand, insertCommand, и забыл четвёртую.
- они должны были создаваться автоматически. Пробовал создать руками, верно это сделать не получилось.
- и не было tableAdapter'а, вручную его на форму перетащил из панели элементов, вроде нормально привязался он (посмотрел в его свойствах). Сделал его даже на всякий случай public. Но толку нет.

Sidewalker
29-04-2012, 11:21
Внезапно спас гугл на английском. Спасибо ребятам из тп микрософта, вот с того форума ответ, может кому пригодится:

"Try this, it worked to me:
Go to edit dataset with designer (you can go there from the "Data" menu then "show data sources" and "Edit dataset with designer".
Right click the adapter and select "Configure". Click "Advanced options". Make sure the "Refresh the data table" is selected. Click OK and Finish.
Tell me if it works. Good luck.
Osama"

Перевожу:

"Попробуй вот это, у меня работает:
Запусти редактирование используемого для этой таблицы набора данных (DataSet), что можно сделать с помощью кликов: меню Данные - Показать источники данных - в окне Источники данных выделится синим текущий источник, над ним чуть выше нажать кнопку Изменить набор данных в конструкторе - правой кнопкой на своём адаптере (например у меня это ClientsSetTableAdapter) - Настроить - Дополнительно - поставить галочку Обновить таблицу данных".

Как бы запутанно это не звучало, работает и у меня))

Sidewalker
29-04-2012, 11:23
Скрин.

vitaly409
06-05-2012, 22:44
А у меня все работает !))))
Спасибо автор!)))

private void Button1_Click(object sender, EventArgs e)
{
пользователиBindingSource.RemoveCurrent();
пользователиBindingSource.EndEdit();
this.Validate();
this.пользователиBindingSource.EndEdit();
this.пользователиTableAdapter.Adapter.Update(this.пользователиDataSet);
}


"пользователи" название таблицы Access! ну а компоненты все происходят с DataSet.




© OSzone.net 2001-2012