Wykład 10 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wykład 10 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy"

Transkrypt

1 Wykład 10 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy 1

2 Architektura ADO.NET - zestaw abstrakcyjnych klas, które udostępniają dane z poziomu środowiska.net - dostęp do różnych źródeł danych (relacyjne bazy danych, pliki XML, arkusze kalkulacyjne, pliki tekstowe) - dostęp za pośrednictwem interfejsów API tzw. zarządzanych dostawców danych - dwie metody dostępu do danych: dostęp bezpołączeniowy i połączeniowy. Zestaw klas można uzyskać dostęp do dowolnego źródła danych. Źródło danych traktuje się jako abstrakcyjną encję 2

3 3

4 Dostawcy danych (Microsoft u): Odbc OleDb OracleClient SqlClient Aby użyć określonego dostawcy należy w kodzie programu utworzyć obiekty specyficzne dla danego dostawcy np. obiekty połączenia to egzemplarze klas OdbcConnection OleDbConnection OracleConnection SqlConnection Przykład lista zainstalowanych dostawców danych katalog Dostawcy 4

5 <section name="system.data" type="system.data.common.dbproviderfactoriesconfigurationhandler, System.Data, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <section name="system.data.dataset" type="system.configuration.namevaluefilesectionhandler, System, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" restartonexternalchanges="false" /> <section name="system.data.odbc" type="system.data.common.dbproviderconfigurationhandler, System.Data, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <section name="system.data.oledb" type="system.data.common.dbproviderconfigurationhandler, System.Data, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <section name="system.data.oracleclient" type="system.data.common.dbproviderconfigurationhandler, System.Data, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <section name="system.data.sqlclient" type="system.data.common.dbproviderconfigurationhandler, System.Data, Version= , Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 5 Fragment pliku machine.config

6 Przykład dane dostawców na podstawie pliku machine.config (Dostawcy) 6

7 // Aplikacja, która wyświetla dane o zainstalowanych w systemie dostawcach using System; using System.Collections.Generic; using System.Text; using System.Data.Common; using System.Data; namespace Dostawcy class Program static void Main(string[] args) DataTable tb = DbProviderFactories.GetFactoryClasses(); // Z fabryki foreach (DataRow drow in tb.rows) StringBuilder sb = new StringBuilder(""); for (int i = 0; i < tb.columns.count; i++) sb.append((i + 1).ToString()).Append("").Append(drow[i].ToString()); sb.append("\n"); Console.WriteLine(sb.ToString()); Console.Read(); 7

8 Jeżeli aplikacja musi obsługiwać wiele źródeł danych to należy użyć tzw. fabryki klas do dynamicznego tworzenia obiektów wybranego dostawcy. Architektura ADO.NET udostępnia klasę DbProviderFactories do zwracania obiektów wymaganych przez specyficznego dostawcę danych. Do metody GetFactory()tej klasy należy przekazać ciąg znaków z nazwą dostawcy. Metoda ta zwraca obiekt fabryczny, który służy do tworzenia specyficznych obiektów wymaganych przez określonego dostawcę. Przykład dynamicznego ustalania klasy dostawcy i pobierania z fabryki dostawców jego specyficznych obiektów katalog Fabryka_dostawców 8

9 using System.Collections.Generic; using System.Text; using System.Data.Common; using System.Data; using System; namespace FabrykaDostawcow class Program static void Main(string[] args) DbProviderFactory fabryka; string dostawca = "System.Data.Odbc"; // dostawca danych string polaczenie = "DSN=ASA_Student_10;UID=dba;PWD=sql;"; // pobranie obiektu fabrycznego fabryka = DbProviderFactories.GetFactory(dostawca); // pobranie obiektu polaczenia using (DbConnection conn = fabryka.createconnection()) conn.connectionstring = polaczenie; conn.open(); DbCommand pytanie = fabryka.createcommand(); // polecenie pytanie.commandtext = "SELECT studenci.num_stud, nazwisko, imie, kurs, sekcja FROM studenci " + " key join rejestr WHERE nazwisko = 'Ackwood'"; 9

10 pytanie.connection = conn; DbDataReader czytacz; czytacz = pytanie.executereader(); czytacz.read(); StringBuilder cr = new StringBuilder(""); cr.append(czytacz["num_stud"].tostring()).append(": NAZWISKO: ").Append(czytacz["nazwisko"].ToString()). Append(" IMIE: ").Append(czytacz["imie"].ToString()).Append(" KURS: "). Append(czytacz["kurs"].ToString()).Append(" GRUPA: ").Append(czytacz["sekcja"].ToString()). Append("\n"); Console.WriteLine(cr.ToString()); conn.close(); Console.Read(); 10

11 11

12 Dostęp do danych - model połączeniowy Pomiędzy obiektem DataReader a źródłem danych jest utrzymywane aktywne połączenie. Każde wywołanie metody Read()zwraca wiersz danych ze źródła. Cechą charakterystyczną tego modelu jest fakt, że wczytuje on dane ze zbioru utworzonego za pomocą polecenia SQL owego po jednym rekordzie, sekwenyjnie i tylko w trybie do odczytu. Niemożliwa jest bezpośrednia aktualizacja danych lub ich dodawanie. Relacje pomiędzy klasami DataReader, Command, Connection wyglądają tak jak na rysunku: 12

13 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data.Common; using System.Data.Odbc; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication1 public partial class Form1 : Form public Form1() InitializeComponent(); // private void button1_click(object sender, EventArgs e) Application.Exit(); 13

14 private void butszukaj_click(object sender, EventArgs e) Int32 odnru = Int32.Parse(tbOdNumeru.Text); Int32 donru = Int32.Parse(tbDoNumeru.Text); OdbcConnection polacz = new OdbcConnection("DSN=ASA_Student_10;UID=dba;PWD=sql;"); polacz.open(); String lancuch_polecenia = "select num_stud, nazwisko ' " + " ' imie as nazim, substr(data_ur,1,10) as du " + from studenci where studenci.num_stud between " + ":od_num and :do_num order by num_stud"; OdbcCommand polecenie = new OdbcCommand(); polecenie.connection = polacz; polecenie.commandtext = lancuch_polecenia; polecenie.parameters.addwithvalue("od_num", odnru); polecenie.parameters.addwithvalue("do_num", donru); OdbcDataReader dr = polecenie.executereader(commandbehavior.closeconnection); lbstudenci.visible = true; lbstudenci.items.clear(); while (dr.read()) lbstudenci.items.add(dr["num_stud"].tostring() + ": " + dr["nazim"] + " " + dr["du"]); dr.close(); 14

15 15

16 Model bezpołączeniowy Polecenie SQL ładuje dane z zewnętrznego źródła do pamięci podręcznej na maszynie klienta. Program manipuluje zbiorem wynikowym na maszynie lokalnej, a aktualizacje przekazuje z danych w buforze do źródła danych. W modelu tym połączenie jest otwierane tylko na czas wczytania danych ze źródła i dokonania aktualizacji. W ten sposób zostają zwolnione zasoby serwera. 16

17 Kluczowe składniki modelu bezpołączeniowego to DataAdapter i DataSet. Obiekt DataAdapter pośredniczy w wymianie danych pomiędzy źródłem a buforami klienta. Obiekt DataSet funkcjonuje w pamięci klienta jako relacyjna baza danych i zawiera co najmniej jeden obiekt DataTable. Obiekt DataTable zawiera wiersze i kolumny danych, które pochodzą z tabel w źródłowej bazie danych. Klasa DataAdapter udostępnia takie ważne metody jak Fill() i Update(). Metoda Fill()przekazuje zapytanie do bazy danych i zapisuje zwrócony zbiór w wybranym obiekcie DataTable. Metoda Update()służy do wykonywania operacji wstawiania, aktualizacji i usuwania danych wg zmian dokonanych w obiekcie DataSet Języki... wykład :52 17

Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy

Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy Uwaga Przed skorzystaniem z niniejszych informacji oraz produktu, którego one dotyczą, należy zapoznać się z informacjami zamieszczonymi

Bardziej szczegółowo

Jak działa Microsoft.NET

Jak działa Microsoft.NET Łukasz Rajchel KEN Solutions 29 maja 2009 1 / 71 Abstrakt Historia.NET i C# Zasada działania.net Assembly CIL CTS CLS CLR Podstawy programowania w C# 2 / 71 Programowanie przed.net C/Win32 C++/MFC Visual

Bardziej szczegółowo

JPA i Hibernate. Dlaczego u mnie działa tak wolno? Sławomir Sobótka

JPA i Hibernate. Dlaczego u mnie działa tak wolno? Sławomir Sobótka JPA i Hibernate Dlaczego u mnie działa tak wolno? Sławomir Sobótka Krótko o sobie... Twórca oprogramowania całościowe podejście Technologie Architektury Metodyki, podejścia, najlepsze praktyki Usability

Bardziej szczegółowo

USOS: System raportowania i analiz statystycznych

USOS: System raportowania i analiz statystycznych Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Filip Grotkowski Nr albumu: 235984 USOS: System raportowania i analiz statystycznych Praca magisterska na kierunku INFORMATYKA Praca wykonana

Bardziej szczegółowo

Lab6. Dwie tabele powiązane relacją jeden do wiele do jednej tabeli (porównaj laboratorium 3, laboratorium 5) Baza danych Sample: tabela Customer w

Lab6. Dwie tabele powiązane relacją jeden do wiele do jednej tabeli (porównaj laboratorium 3, laboratorium 5) Baza danych Sample: tabela Customer w Lab6. Dwie tabele powiązane relacją jeden do wiele do jednej tabeli (porównaj laboratorium 3, laboratorium 5) Baza danych Sample: tabela Customer w relacji jeden do wiele do tabeli PURCHASE_ORDER oraz

Bardziej szczegółowo

Praca dyplomowa inżynierska

Praca dyplomowa inżynierska POLITECHNIKA WARSZAWSKA Rok akademicki: Wydział Elektroniki i Technik Informacyjnych 2003/2004 Instytut Automatyki i Informatyki Stosowanej Praca dyplomowa inżynierska Krzysztof Ślusarczyk Opracowanie,

Bardziej szczegółowo

Wiodące na świecie oprogramowanie do drukowania etykiet, kodów kreskowych, tagów RFID i kart

Wiodące na świecie oprogramowanie do drukowania etykiet, kodów kreskowych, tagów RFID i kart Wiodące na świecie oprogramowanie do drukowania etykiet, kodów kreskowych, tagów RFID i kart Seagull Scientific to lider technologiczny od 1985 r. Aplikacja BarTender to pierwszy program dla systemu operacyjnego

Bardziej szczegółowo

Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@)

Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@) Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@) System powstał w ramach projektu PHARE 2002/000-580.01.09 Zarządzanie Finansami Publicznymi Dokumentacja użytkownika

Bardziej szczegółowo

PCschematic ELautomation 11 - nowości. Spis treści

PCschematic ELautomation 11 - nowości. Spis treści Nowości w wersji 11 Spis treści Nowe menu...4 Menu Insert...4 Wstaw Stronę...4 Wstaw Projekt...4 Wstaw Chmurkę...4 Menu symboli...5 Zmiana nazwy symbolu...5 Generator symboli...5 Teksty...6 Wyrównanie

Bardziej szczegółowo

W ramach realizacji przedmiotu zamówienia do Wykonawcy należeć będzie:

W ramach realizacji przedmiotu zamówienia do Wykonawcy należeć będzie: Załącznik nr 1 do SIWZ SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA Kompleksowa informatyzacja Samodzielnego Publicznego Zakładu Opieki Zdrowotnej w Lubaczowie jako element Podkarpackiego Systemu Informacji

Bardziej szczegółowo

Partition Manager 12 Home

Partition Manager 12 Home Paragon Software Poland Sp. z o.o ul. Śląska 22/21 42 217 Częstochowa, Polska Tel. +48 (34) 343 81 81 Internet: www.paragon software.pl Email: kontakt@paragon software.pl Partition Manager 12 Home Podręcznik

Bardziej szczegółowo

Enterprise Data Server (EDS) jest nowoczesnym, wydajnym systemem zbierania, przetwarzania i udostępniania danych operacyjnych, w tym danych

Enterprise Data Server (EDS) jest nowoczesnym, wydajnym systemem zbierania, przetwarzania i udostępniania danych operacyjnych, w tym danych Enterprise Data Server (EDS) jest nowoczesnym, wydajnym systemem zbierania, przetwarzania i udostępniania danych operacyjnych, w tym danych procesowych. Źródłem danych dla EDS może być dowolny system cyfrowy

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS

INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS System CMS (Content Managment System) jest to aplikacja internetowa pozwalająca na łatwą aktualizację i rozbudowę strony internetowej. Osoba aktualizująca

Bardziej szczegółowo

PODSTAWY PROGRAMOWANIA

PODSTAWY PROGRAMOWANIA PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright 2003-2012 by Andrzej Marciniak PP-10(1 z 66) Na poprzednim wykładzie...

Bardziej szczegółowo

XML stan obecny i trendy rozwojowe

XML stan obecny i trendy rozwojowe IX Konferencja PLOUG Koœcielisko PaŸdziernik 2003 XML stan obecny i trendy rozwojowe Tomasz Traczyk Politechnika Warszawska Od kilku lat XML jest jedn¹ z najbardziej popularnych technologii informatycznych,

Bardziej szczegółowo

Reprezentacja dokumentów tekstowych w modelu przestrzeni wektorowej

Reprezentacja dokumentów tekstowych w modelu przestrzeni wektorowej POLITECHNIKA WARSZAWSKA WYDZIAŁ ELEKTRONIKI I TECHNIK INFORMACYJNYCH INSTYTUT INFORMATYKI Rok akademicki 2004/2005 PRACA DYPLOMOWA MAGISTERSKA Michał Kosmulski Reprezentacja dokumentów tekstowych w modelu

Bardziej szczegółowo

dr inż. Waldemar Izdebski Wydział Geodezji i Kartografii Politechnika Warszawska Geo-system Sp. z o.o.

dr inż. Waldemar Izdebski Wydział Geodezji i Kartografii Politechnika Warszawska Geo-system Sp. z o.o. dr inż. Waldemar Izdebski Wydział Geodezji i Kartografii Politechnika Warszawska Geo-system Sp. z o.o. Możliwość wykorzystania map cyfrowych i interaktywnych w zadaniach administracji (planowanie przestrzenne,

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU. INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW. Nasza wiedza i narzędzia wspierają Twoją strategię. Wersja 9.

INSTRUKCJA OBSŁUGI PROGRAMU. INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW. Nasza wiedza i narzędzia wspierają Twoją strategię. Wersja 9. INSTRUKCJA OBSŁUGI PROGRAMU INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW Nasza wiedza i narzędzia wspierają Twoją strategię Wersja 9.0 www.biznesmen.com.pl pomoc@biznesmen.com.pl 1 Spis treści I.Wstęp...

Bardziej szczegółowo

9. Protokoły sieciowe TCP/IP

9. Protokoły sieciowe TCP/IP 9. Protokoły sieciowe TCP/IP Urządzenia w sieci komputerowej komunikują się ze sobą i wymieniają informacje. Wymiana informacji musi przebiegać w ściśle określony sposób umożliwiający przesyłanie danych.

Bardziej szczegółowo

Acronis Backup & Recovery 11 Instrukcja szybkiego rozpoczęcia pracy

Acronis Backup & Recovery 11 Instrukcja szybkiego rozpoczęcia pracy Acronis Backup & Recovery 11 Instrukcja szybkiego rozpoczęcia pracy Dotyczy następujących wersji: Advanced Server Virtual Edition Advanced Server SBS Edition Advanced Workstation Server for Linux Server

Bardziej szczegółowo

Profil metadanych dla dokumentów planistycznych określonych w ustawie o Planowaniu i Zagospodarowaniu Przestrzennym

Profil metadanych dla dokumentów planistycznych określonych w ustawie o Planowaniu i Zagospodarowaniu Przestrzennym Opracowanie projektu standardowych modeli danych oraz profilu metadanych dla opracowań planistycznych na potrzeby realizacji projektu Przyspieszenie wzrostu konkurencyjności województwa mazowieckiego,

Bardziej szczegółowo

Różne reprezentacje mapy feromonowej w problemie plecakowym

Różne reprezentacje mapy feromonowej w problemie plecakowym Wydział Informatyki i Nauki o Materiałach Jarosław Dąbrowski 193207 Praca magisterska Różne reprezentacje mapy feromonowej w problemie plecakowym Promotor: dr inż. Mariusz Boryczka Sosnowiec, 2008 Spis

Bardziej szczegółowo

Semantic Web technologie, zastosowania, rozwój

Semantic Web technologie, zastosowania, rozwój XV Konferencja PLOUG Kościelisko Październik 2009 Semantic Web technologie, zastosowania, rozwój Jarosław Bąk, Czesław Jędrzejek Politechnika Poznańska jaroslaw.bak@put.poznan.pl, czeslaw.jedrzejek@put.poznan.pl

Bardziej szczegółowo

STATISTICA 10. Nowości i udoskonalenia. Spis treści

STATISTICA 10. Nowości i udoskonalenia. Spis treści STATISTICA 10 Nowości i udoskonalenia Spis treści 1. Wydajność... 2 2. Współpraca z innymi systemami... 2 2.1. SharePoint... 2 2.2. Office 2010... 2 2.3. OLAP... 2 2.4. STATISTICA PI Connector... 3 3.

Bardziej szczegółowo

Programowanie aplikacji WWW w technologii.net

Programowanie aplikacji WWW w technologii.net Programowanie aplikacji WWW w technologii.net Pracownia specjalistyczna, studia niestacjonarne, stopień I, rok 2014/2015 Każdy z projektów oceniany będzie również w zakresie wyglądu maksymalna ilość punktów:

Bardziej szczegółowo

Synology NAS Przewodnik użytkownika

Synology NAS Przewodnik użytkownika Synology NAS Przewodnik użytkownika ID dokumentu Syno_UsersGuide_NAS_20130906 Spis treści Rozdział 1: Wprowadzenie Rozdział 2: Synology DiskStation Manager pierwsze kroki Instalacja serwera Synology NAS

Bardziej szczegółowo

Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc.

Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc. Copyright Acronis, Inc., 2000 2011. Wszelkie prawa zastrzeżone. Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc. Acronis Compute with Confidence, Acronis Startup Recovery

Bardziej szczegółowo

ABBYY FineReader 11 Podręcznik użytkowanika

ABBYY FineReader 11 Podręcznik użytkowanika ABBYY FineReader 11 2011 ABBYY. Wszystkie prawa zastrzeżone. Informacje w tym dokumencie mogą się zmienić bez uprzedzenia i nie niosą żadnych zobowiązań po stronie ABBYY. Oprogramowanie opisane w tym dokumencie

Bardziej szczegółowo

Podręcznik użytkownika

Podręcznik użytkownika Podręcznik użytkownika 1 Streamsoft Podręcznik użytkownika programów z serii PCBIZNES (Ala, Ewa, Aga, Iza) jest stale aktualizowany. Najnowsze wersje podręcznika są dostępne na stronie internetowej produktu:

Bardziej szczegółowo

Szczegółowy zakres zadań Wykonawcy

Szczegółowy zakres zadań Wykonawcy Załącznik nr 1 Szczegółowy zakres zadań Wykonawcy 1. Opracowanie kompleksowej koncepcji rozwoju i funkcjonowania Systemu Obsługi Inwestora. Wykonawca w oparciu o założenia przedstawione przez Zamawiającego

Bardziej szczegółowo