.NET i Bazy Danych Projekt: Wadim Grasza
ODBC Open DataBase Connectivity Dostęp do danych w dowolnym DBMS Biblioteka odbc32.dll Sterowniki dostarczane przez producentów DBMS Komunikacja m.in. z: MS SQL Server Oracle Visual Fox Pro Bazy MS Access
OLE DB Rozwinięcie idei ODBC W teorii dostęp do dowolnych danych, nie tylko relacyjnych DBMS Idea OLE DB: Data providers przechowują i udostępniają dane Data consumers mogą korzystać z danych Service components przetwarzają dane Interfejsem dla programisty jest ADO
ADO = ActiveX Data Objects Obiektowy interfejs dostępu do danych w modelu COM Prostota i spójność Popularność dzięki powstałym komponentom do RAD Kolejny krok: ADO.NET
ADO.NET Znacznie uproszczony dostęp do DBMS Ujednolicenie dostępu do danych dla całej platformy .NET i wszystkich DBMS Interfejsy wyspecjalizowane: Sql… Odbc… Interfejs ogólny: OleDb…
Nawiązywanie połączenia z bazą danych Zainicjowanie odpowiedniego obiektu SqlConnection, OleDbConnection, OdbcConnection Przekazanie ConnectionString do konstruktora Rodzaj dostawcy protokołu OleDB: Provider Nazwa serwera: Server Nazwa bazy danych: Database Nazwa użytkownika: User ID Hasło: Pwd Przykład: „Server=(local);Database=Test;User ID=sa;Pwd=abcd”
Nawiązywanie połączenia Przykład 1 Nawiązywanie połączenia
Pasywna wymiana danych Model: Zapytanie => wynik Każde zapytanie niezależne Do pasywnej wymiany danych służy obiekt: SqlCommand, OleDbCommand, OdbcCommand Obiekt może wykonać polecenie i zwrócić: Zbiór rekordów Wartość skalarną Pusty zbiór wyników
Przykład 2 Zapytania
Lokalne struktury danych Zakres danych Struktury danych Powiadamianie o zmianach Wielodostęp
Lokalne struktury danych Przykład 3 Lokalne struktury danych
Transakcje Transakcja gwarantuje niepodzielność wykonania ciągu operacji W ADO.NET: SqlTransaction, OdbcTransaction, OleDbTransaction
Przykład 4 Transakcje
Typ DataSet Może przechowywać dane z relacyjnych baz danych DataSet przechowuje dane w kolekcji DataTable, które odpowiadają tabelom z serwera DataTable ma kolekcje elementów typu DataRow i DataColumn: DataRow zawiera pojedynczą krotkę tabeli DataColumn zawiera informacje o kolumnie
Przykład 5 DataSet
Aktywna wymiana danych DataAdapter zawiera m.in. metody: Fill służącą do wypełnienia parametru danymi Update służącą do aktualizacji danych na serwerze poprzez wysłanie odpowiednich zapytań do serwera dla zmienionych rekordów Q: Skąd DataAdapter wie, jakich zapytań użyć? A: Programista sam definiuje odpowiednie zapytania ustawiając wartości atrybutów InsertCommand, DeleteCommand, UpdateCommand. W wyjątkowych przypadkach, gdy polecenie SELECT zawiera tylko jedną tabelę, można skorzystać z obiektu SqlCommandBuilder, który na podstawie polecenia SELECT generuje odpowiednie wartości tych atrybutów.
Przykład 6 DataAdapter
Przykład 7 CommandBuilder
Automatyczne wiązanie danych z komponentami wizualnymi Platforma .NET pozwala w bardzo prosty sposób wiązać dane z elementami wizualnymi aplikacji Sposoby tworzenia powiązań takie same jak sposoby projektowania aplikacji Proceduralne Za pomocą wizualnych narzędzi (Visual Studio)
Proceduralne wiązanie komponentów Przykład 8 Proceduralne wiązanie komponentów
Przykład 9 (do utworzenia) Wizualne wiązanie komponentów (Visual Studio)
Pytania?
Bibliografia Wiktor Zychla „Windows oczami programisty” MSDN2 Library: http://msdn2.microsoft.com/en-us/library/default.aspx
Wadim Grasza wadim.grasza@gmail.com Dziękuję za uwagę Wadim Grasza wadim.grasza@gmail.com