Wykład 10 Architektura ADO.NET Dostawcy danych Modele dostępu do danych model połączeniowy Model bezpołączeniowy
|
|
- Izabela Łukasik
- 9 lat temu
- Przeglądów:
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 Uwaga Przed skorzystaniem z niniejszych informacji oraz produktu, którego one dotyczą, należy zapoznać się z informacjami zamieszczonymi
Bardziej szczegółowoJak 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ółowoJPA 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ółowoUSOS: 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ółowoLab6. 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ółowoPraca 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ółowoWiodą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ółowoInformatyczny 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ółowoPCschematic 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ółowoW 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ółowoPartition 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ółowoEnterprise 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ółowoINSTRUKCJA 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ółowoPODSTAWY 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ółowoXML 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ółowoReprezentacja 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ółowodr 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ółowoINSTRUKCJA 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ółowo9. 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ółowoAcronis 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ółowoProfil 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ółowoRóż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ółowoSemantic 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ółowoSTATISTICA 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ółowoProgramowanie 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ółowoSynology 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ółowoAcronis 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ółowoABBYY 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ółowoPodrę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ółowoSzczegół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