Michał A.

Michał A. Programista
Microsoft Dynamics
AX

Temat: Aktualizacja datagridview

Witam,

prawdopodobnie zadaje właśnie bardzo proste pytanie, jednak nie potrafię załapać o co chodzi.

Ładuję dataset do datagridview. Chciałbym osiągnąć taki efekty by przy każdym przejściu np. tabem pomiędzy cellami była wykonana metoda update. Wiem że metoda aktualizacji dataset jest prawidłowa bo pod zwykłym buttonem działa (zmieniam jakieś dane na gridzie, klikam buttona i wykonuje aktualizacje), jednak gdy przechodzę pomiędzy cellami nie działa i nie wiem dlaczego. Nie wiem pod jakim zdarzeniem zachaczyć metodę a próbowałem pod wieloma i zawsze jest fail.
Używam standardowych kontrolek winforms jaki i grida z Devexpress.

Jeśli potrzeba więcej danych - podam
Pozdrawiam.
Jarosław S.

Jarosław S. Kierownik Działu
Rozwoju Aplikacji
.NET, ITeam SA

Temat: Aktualizacja datagridview

Nie weryfikowałem tego specjalnie dokładnie, ale "na oko" odpowiednie zdarzenia to "CellValueChanged" lub "CellLeave".

Tutaj jednak jedna uwaga - nie znam rozmiaru ani przeznaczenia aplikacji, ale zwykle aktualizacja w bazie całego wiersza, każdorazowo po zmianie pojedynczego pola w wierszu, nie jest rozwiązaniem optymalnym :-).
Sugeruję tutaj albo aktualizację danych w bazie dopiero po opuszczeniu wiersza, albo taką modyfikację kodu, aby modyfikować w bazie pojedyncze pola.Jarosław S. edytował(a) ten post dnia 02.02.09 o godzinie 16:40
Michał A.

Michał A. Programista
Microsoft Dynamics
AX

Temat: Aktualizacja datagridview

Oczywiście masz racje jeśli chodzi o moment aktualizacji. Jednak widzę że nie dokładnie wyjaśniłem problem.

Np mam wiersz i w nim 7 komórek. Wpisuje dane do wszystkich siedmiu. Przechodzę tabem do następnego wiersza. W tej chwili leci metoda update.

I teraz dla sprawdzenia wyniku ponownie wczytuje dane. Co się okazuje. Przejście tabem wykonało aktualizację 6 komórek, 7 (ostatnio aktualizowana) została bez zmian.

Gdy wykonuje aktualizację zwykłym buttonem wszystko jest Ok! - aktualizuje 7 komórek.

Może kontrolka grid jest w jakimś stanie podczas aktualizacji?

Pozdrawiam
Marcin Pigłowski

Marcin Pigłowski Specjalista ds. baz
danych

Temat: Aktualizacja datagridview

może spróbuj po przejściu do nowego wiersza a przed zapisanie danych wywołać CommitEdit lub EndEdit może pomoże.
Piotr Tworek

Piotr Tworek Customer Service
Software Analyst

Temat: Aktualizacja datagridview

Michał - jeżeli używasz obiektu DataSet to odwołujesz się także do obiektu DataTable z którym Twój DGV jest powiązany, a w którym możesz wywołać zdarzenie przed zapisem danych

DataTable.AcceptChanges()
Piotr Tworek edytował(a) ten post dnia 25.08.09 o godzinie 09:53
Paweł Goluda

Paweł Goluda adminitrator
systemów
komputerowych
(programista), SE
Bot...

Temat: Aktualizacja datagridview

Witam,

Jeżeli do wprowadzenia danych z datasetu do grida używasz BindingSource wtedy możesz skorzystać ze zdarzenia CurrentItemChanged może to ci pomoże, nie wiem tylko czy to przypadkiem nie zadziała po zmianie każdej wartości w wierszu

Następna dyskusja:

Automatyczna aktualizacja




Wyślij zaproszenie do