.NET i Bazy Danych

advertisement
.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”
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
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)
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
Dziękuję za uwagę
Wadim Grasza
[email protected]
Download