Programování v jazyku C# II. 5.kapitola



Podobné dokumenty
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

TÉMATICKÝ OKRUH TZD, DIS a TIS

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

Jazyk C# - přístup k datům

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

ADO.NET Objekt Command (online scenář)

Seznámení s knihovnou ADO.NET

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Nové jazykové brány do Caché. Daniel Kutáč

Databázové systémy. Cvičení 6: SQL

8.2 Používání a tvorba databází

Databázové systémy Cvičení 5.2

Ukládání a vyhledávání XML dat

Jazyk C# - přístup k datům

Stručný obsah. K2118.indd :15:27

4. lekce Přístup k databázi z vyššího programovacího jazyka

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

1 Webový server, instalace PHP a MySQL 13

KIV/ZIS cvičení 5. Tomáš Potužák

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Práva a role. Martin Polák. NDBI013 Administrace Oracle

Použití databází na Webu

Semestrální práce 2 znakový strom

Semináˇr Java X JDBC Semináˇr Java X p.1/25

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 26.3.

PŘETĚŽOVÁNÍ OPERÁTORŮ

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

Jazyk SQL databáze SQLite. připravil ing. petr polách

KIV/ZIS cvičení 6. Tomáš Potužák

APS Administrator.OP

Tvorba informačních systémů

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

1. Webový server, instalace PHP a MySQL 13

Pantek Productivity Pack. Process Data Logger. Uživatelský manuál

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Stopařův průvodce po ADO.NET a LINQ aneb Foxařův průvodce po práci s daty v.net Milan Kosina

Databáze a XML v.net/c# ADO.NET Entity Framework LINQ to XML

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Úvod do databázových systémů

Databáze I. 5. přednáška. Helena Palovská

DUM 12 téma: Příkazy pro tvorbu databáze

Databáze I. Přednáška 4

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access složitější konverze dat Ing. Kotásek Jaroslav

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

PA152. Implementace databázových systémů

O Apache Derby detailněji. Hynek Mlnařík

Synchronizace CRM ESO9 a MS Exchange

Informační systémy ve zdravotnictví. 6. cvičení

MS SQL Server 2008 Management Studio Tutoriál

Databáze I. Přednáška 7

Generické programování

Manuál Multitag čtečka

Vladimír

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Operátory ROLLUP a CUBE

KMI / TMA Tvorba mobilních aplikací. 6. seminář ZS 2016/2017 Středa 13:15-15:45

METODY PŘÍSTUPU K DATABÁZÍM POSTGRESQL V.NET FRAMEWORK

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Formulář NÚV v programu PPP4

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

Jazyk C# - přístup k datům

PHP a Large Objecty v PostgreSQL

Technologie ASP.NET. Martin Trněný

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

Data x Informace x Znalosti

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

Access. Tabulky. Vytvoření tabulky

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Vazba ESO9 na MS Outlook a MS Exchange

Úvod do databázových systémů

Microsoft Access. Typy objektů databáze: Vytvoření a návrh nové tabulky. Vytvoření tabulky v návrhovém zobrazení

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

5. POČÍTAČOVÉ CVIČENÍ

Implementace dávkových operací

Oracle XML DB. Tomáš Nykodým

Databázové a informační systémy

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

NOVÁ STROMOVÁ STRUKTURA VE VÝROBĚ

Microsoft Access tvorba databáze jednoduše

Programování v C++ 3, 3. cvičení

Obsah. Úvodem 15. Zaměření knihy 15 Co v knize najdete 15 Doprovodné CD 17 Poděkování 18

Programování v C++ 2, 4. cvičení

Transkript:

Programování v jazyku C# II. 5.kapitola

Obsah O ADO.NET Spojení s DB Příkazy Jednoduché čtení DataSet 2/28

ADO.NET ADO - ActiveX Data Object Orientováno na webové aplikace neexistence stavu v HTTP Obecný přístup k databázi přístup na data - data provider možnost napsat vlastní standardně Microsoft SQL server OLE DB (Object Linking and Embedding) ODBC (Open DataBase Connectivity) 3/28

Jmenné prostory System.Data obecné trídy pro manipulaci s daty hlavní trídou je DataSet System.Data.Common obecné trídy pro prístup k datum (jak naplnit DataSet) možnost napsat vlastního poskytovatele System.Data.SqlClient/OleDb/Odbc konkrétní poskytovatelé dat prefix tríd dle poskytovatele Sql/OleDb/OdbcDataAdapter 4/28

Spojení Spojení s DB je první krok k úspěchu otevření spojení (na konkrétní stroj a databázi) ovládání spojení uzavření spojení Obecné rozhraní IDBConnection Iplementace: *Connection Parametry spojení parametry konstruktoru neuvedené parametry - standardní hodnoty parametry nelze v průběhu měnit pouze pokud je spojení zavřeno 5/28

Operace Open blokující (ceká dokud se nespojí) možnost nastavit ConnectionTimeout standardně 15 s 0 - neomezeně dlouho, používat zřídka, nejlépe vůbec!!! Close nevolá se automaticky, nutno volat explicitně 6/28

Connection Pooling Umožňuje opětovné využití spojení pokud jsou parametry spojení shodné, použije se Transparentní řízeno poskytovatelem dat Uzavření spojení po vypršení časového limitu Otevření spojení využití předešle uzavřených spojení Kde se to využije když se často uzavírají spojení webové aplikace 7/28

SQL server a pooling Pro SQL Server - pooling automaticky zajištěn Využívat instanci Connection vícekrát nevytvářet nové instance lze použít i při změně DB 8/28

Příkazy Rozhraní IDbCommand implementace - *Command Není vázáno na spojení vlastnost Connection změna asociovaného spojení Vytvoření konstruktor + asociace spojení SqlCommand prikaz = new SqlCommand(dotaz); prikay.connection = new SqlConnection(parametry); Metoda CreateCommand nad spojením SqlCommand prikaz = spojeni.createcommand(); 9/28

Parametry Třída *Parameters konstruktor název parametru datový typ nastavení hodnoty vlastnost Value Přidání do příkazu kolekce Parameters Příklad prikaz.commandtext = "SELECT Jmeno,Prijmeni FROM Studenti WHERE Jmeno=@Jmeno"); prikaz.parameters.add("@jmeno", SqlDbType.VarChar,20).Value = "Alžbeta"; 10/28

Spouštění příkazu Text příkazu možno měnit vlastnost CommandText Spuštění příkazu podle navrácené hodnoty ExecuteNonQuery počet navrácených řádků ExecuteScalar první sloupec prvního řádku např. pro agregační funkce (COUNT, MAX,...) ExecuteReader vrací všechny vybrané záznamy (nutno uzavřít) 11/28

Jednoduché čtení dat Rozhraní IDataReader Nutné otevrené spojení Jednosmerné ctení nelze se vracet jednorázové zobrazení dat Vytvorení *Command.ExecuteReader Nutno uzavrít DataReader 12/28

Jak číst Zahájení čtení metoda Read nutno volat už pro první položku Čtení hodnoty sloupce indexer číslo sloupce název sloupce metody Get<Typ>(cislo sloupce) když je hodnota null, výjimka 13/28

Příklad SqlConnection spojeni = new SqlConnection (" integrated security = SSPI ; data source = server ; initial catalog = stag "); spojeni.open(); SqlCommand prikaz = new SqlCommand ("SELECT * FROM Studenti", spojeni); SqlDataReader sqlctenar = prikaz.executereader(); while (sqlctenar.read()) { Console.Write (sqlctenar [2]); Console.Write (sqlctenar ["Jmeno"]); } sqlctenar.close(); spojeni.close(); 14/28

Třída DataSet Paměťový obraz databáze bez spojitosti s reálnou DB databáze použita pro naplnění dále bez nutnosti připojení cachované hodnoty vhodné pro webový přístup Zapouzdření tříd DataTable tabulka DataRow... záznam 15/28

Vytvoření z DB Třída *DataAdapter zajišťuje propojení DataSetu a databáze Vytvoření na základě *Command asociovaného se spojením textu příkazu a *Connection možnost sdružování více tabulek v jednom DataSetu ideálně: 1 adaptér / 1 tabulka *DataAdapter.Fill naplnění DataSetu možnost naplnění více tabulek vícenásobné volání Fill možnost pojmenovat tabulky, sloupce TableMappings, ColumnMappings 16/28

Vytvoření z XML Bez nutnosti spojení s DB naplnění DataSet.ReadXml XML soubor XML řetězec Možno kombinovat s načtením z DB 17/28

XSD schema Definice tabulky, vztahů a omezení Nastavit před/po naplnění možnost zrušit naplnění, není-li schéma splněno Získání schémata ze zdroje DataAdapter.FillSchema Získání schémata z XSD DataSet.ReadXmlSchema Získání schémata programově Vytvoření primárních klíčů DataTable.PrimaryKey Vytvoření relací DataSet.Relations.Add Omezení DataTable.Constraints.Add... 18/28

Vytvoření programově Bez nutnosti spojení s DB Vytvoření tabulky DataSet.Tables.Add Vytvoření sloupce DataTable.Columns.Add Vložení záznamu DataTable.Rows.Add pole hodnot v poradí sloupců 19/28

Čtení dat Obecný přístup DataSet.Table["tabulka"].Rows[0]["sloupec"] nutnost převodu na string a zpět Specializovaný potomek DataSet kontrola typu překladač vytvoření XSD popisu přeložení XSD šablony v MSVS 20/28

Změna dat DataSet.Merge spojení tabulek tabulky nemusí mít stejný počet sloupců DataSet.AcceptChanges přijetí změn provedených od nahrání či posledního přijetí změn DataSet.RejectChanges zamítnutí změn DataSet.GetChanges získání změn např. synchronizace dvou strojů 21/28

Záznam v tabulce Třída DataRow Hodnoty záznamu asociace hodnota - sloupec Vytvoření záznamu není veřejný konstruktor DataTable.NewRow nepřidává do tabulky (podobně jako XmlNode) 22/28

Přidání záznamu Jednorázové přidání DataTable.Rows.Add Hromadné přidání DataTable.LoadDataRow uzavřeno do bloku BeginLoadData/EndLoadData dočasné vypnutí pravidel kontroly Příklad tabulka.beginloaddata(); tabulka.loaddatarow(radek1,true); tabulka.loaddatarow(radek2,true); tabulka.endloaddata(); 23/28

Editace záznamu Lze měnit konkrétní záznam Pro hromadnou změnu vhodné pozdržet kontrolu podobně jako u přidání uzavřít do bloku BeginEdit/EndEdit možnost zamítnout změnu CancelEdit() foreach(datarow radek in tabulka.rows) { radek.beginedit(); radek[0]=(int) radek[0]+10; } tabulka.acceptchanges(); 24/28

Smazání záznamu Mazání podle indexu DataTable.Rows.RemoveAt Mazání konkrétního záznamu DataRow.Delete 25/28

Zápis do DB Nutnost vytvořit SQL příkazy DataAdapter.*Command parametry příkazu - dosazení hodnot sloupců Možnost automatického vygenerování *CommandBuilder musí existovat během zápisu musí existovat primární klíč 26/28

Příklad SqlConnection spojeni = new SqlConnection ( "integrated security = SSPI; data source = server; initial catalog = stag"); SqlDataAdapter adapterpredmety = new SqlDataAdapter ("SELECT * FROM Predmety WHERE Zkratka = PJC2 ", spojeni); DataSet databaze = new DataSet ("Databaze"); adapterpredmety.fill (databaze,"predmety"); databaze.tables["predmety"].rows[0]["nazev"] = "Programování v.net 2"; SqlCommandBuilder sb = new SqlCommandBuilder (adapterpredmety); adapterpredmety.update (databaze,"predmety"); 27/28

Konec 28/28