Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: И снова про DataGrid... Добавлено: 07.01.06 17:07  

Автор вопроса:  Nio | Web-сайт: www.fea.nxt.ru
Слышал, что DataGrid позволяет полностью управлять данными в таблицах... Как это сделать? Т.е, чтобы при изменении ячейки автоматически менялось значение в базе данных.
Подключается всё c использованием OleDbConnection, DataAdapter и DataSet.

Ещё вопрос: как отследить событие изменения значения в ячейке? В нормальном VB у грида имеется событие AfterUpdate, здесь его почему-то нет...

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 07.01.06 17:35
Ещё вопрос: как отследить событие изменения значения в ячейке?
В нормальном VB у грида имеется событие AfterUpdate, здесь его
почему-то нет...

События DataTable.RowChanging и DataTable.RowChanged.

Как это сделать?

Для сохранения изменений в БД используйте DataAdapter.Update.

Ответить

Номер ответа: 2
Автор ответа:
 Nio



Вопросов: 15
Ответов: 115
 Web-сайт: www.fea.nxt.ru
 Профиль | | #2
Добавлено: 07.01.06 18:02
Секундочку, а где там DataTable? Я не использую этого объекта...

Ответить

Номер ответа: 3
Автор ответа:
 Nio



Вопросов: 15
Ответов: 115
 Web-сайт: www.fea.nxt.ru
 Профиль | | #3
Добавлено: 07.01.06 18:15
Пока вешаю DataAdapter.Update на событие DataGrig.CurrentCellChanged, но это как-то неправильно... Дело в том, что при изменении одной ячейки должна пересчитаться другая. Как изменить ячейку, я знаю, а вот как поймать событие изменения...

Ответить

Номер ответа: 4
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #4
Добавлено: 07.01.06 19:15
DataTable в коллекции DataSet.Tables.

Ответить

Номер ответа: 5
Автор ответа:
 Nio



Вопросов: 15
Ответов: 115
 Web-сайт: www.fea.nxt.ru
 Профиль | | #5
Добавлено: 07.01.06 20:51
Так... А как добраться до этого объекта?

Может, напишите что-нибудь в роде
Private Sub DataSеt1.xxxx.xxx_xxx (xxx as yyy)handles zzzz? Или дадите ссылочку, где об этом можно почитать?

К счастью, при нажатии "Enter" в DataGrid происходит событие CurrentCellChanged (переход на следующую ячейку). Поэтому, если не разберусь, оставлю всю процедуру расчёта/обновления на нём.

Вот кстати, минус ".NET": старые компоненты (тот же DataGrid) имели много полезных событий (AfterUpdate, например), в новой же версии эти события исчезли... а без них - как без рук... А в Delphi .NET все старые свойства и события, как ни странно, остались... :( И ADO "по-старому" работать не перестало.

Ответить

Номер ответа: 6
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #6
Добавлено: 07.01.06 21:05
Ничего не исчезло. Только усовершенствовалось. Надо только уметь это
использовать. И вникнуть в модель ADO .NET

Насчет DataTable.. Если DataSet нетипизированный, то DataTable можно
добыть из коллекции Tables:

Dim DT As DataTable = DS.Tables("Name";)

Если типизированный, то видимо так:

Dim DT As DataTable = DS.Name

Хотя не уверен. Сам типизированными датасетами не пользуюсь, т.к.
считаю их функциональность излишней.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам