Rozwiązywanie konfliktów w obiekcie DataSet

Brian A. Randell
MCW Technologies, LLC

Streszczenie: W artykule omówiono pracę z danymi bez połączenia ze źródłem danych oraz przedstawiono sposób rozwiązania konfliktów występujących w obiekcie DataSet. Kod źródłowy przykładowego rozwiązania opracowano z zastosowaniem Visual Basic .NET, ADO.NET oraz .NET Framework.
Długość dokumentu — około 17 stron drukowanych

Uwaga — do uruchomienia przykładowej aplikacji wymagany jest system operacyjny Microsoft Windows® z zainstalowaną platformą .NET Framework 1.0 SP2. Prezentowany w niniejszym artykule przykładowy kod, napisany w języku Visual Basic® .NET, utworzono i przetestowano w Visual Studio® 2002. Ponadto niezbędny będzie dostęp do instancji bazy danych SQL Server 2000 SP3 na komputerze posiadającym przynajmniej 3 megabajty przestrzeni dyskowej na przykładową bazę danych. Testy przeprowadzono przy użyciu lokalnej instancji SQL Server 2000 Personal Edition SP3 w systemie Windows XP Professional SP1.

Spis treści

  • Wstp

  • Użytkowanie aplikacji

  • Zagadnienia projektowe

  • Jak to działa

  • Podsumowanie

 

Wstęp

Nowy obiekt DataSet biblioteki ADO.NET, wprowadzony w pierwszym wydaniu platformy .NET Framework, zawiera wiele funkcji przydatnych w pracy z danymi bez połączenia ze źródłem danych. Dane zawarte w obiekcie DataSet mogą być automatycznie wyświetlane w obiektach interfejsu użytkownika, na przykład w obiekcie DataGrid. Obiekt DataSet może być serializowany i przekazywany za pośrednictwem sieci. Ponadto obiekt ten pozwala na pracę z danymi w trybie off line z możliwością późniejszego przesłania zmian z powrotem do bazy danych. Właśnie ta specyficzna funkcjonalność pracy w trybie off line może sprawiać problemy.

Uniezależnienie się od źródła danych skutkuje polepszeniem skalowalności i elastyczności aplikacji. Można na przykład podłączyć się do własnej sieci korporacyjnej za pomocą modemu, pobrać niezbędne dane do obiektu DataSet, rozłączyć się i kontynuować pracę. Następnie można ponownie nawiązać połączenie i uaktualnić bazę danych na podstawie wprowadzonych zmian. Zastanówmy się jednak, co się stanie, jeżeli inny użytkownik przeprowadzi zmiany w tym samym rekordzie, na którym aktualnie pracujemy, i — co ważniejsze — co powinno się stać.

Aplikacja stanowiąca przykład do niniejszego artykułu prezentuje jedno z możliwych rozwiązań tego problemu. Tak jak w przypadku każdego złożonego zagadnienia, także i tu nie ma uniwersalnego rozwiązania pasującego do każdej aplikacji. W przykładzie skoncentrowano się na jednym konkretnym typie rozwiązania. Pokażemy w nim, że do wybrania właściwego rozwiązania dla konkretnego przypadku konieczne jest podjęcie wielu decyzji. Omawiany przykład powinien stanowić punkt odniesienia, pomocny w wyborze rozwiązania odpowiedniego dla konkretnej aplikacji.