Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud (stream) představuje.

Slides:



Advertisements
Podobné prezentace
YOUR LOGO ADO.NET - Práca s databázou. YOUR LOGO ADO.NET  ADO.NET představuje soubor tříd pro přístup k datům v technologii.NET.
Advertisements

Aplikační a programové vybavení
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
VISUAL BASIC Práce se soubory.
Fakulta elektrotechniky a informatiky
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
PHP Práce se soubory v PHP - 13
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
C# pro začátečníky Mgr. Jaromír Osčádal
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
PROGRAMOVACÍ JAZYKY (c) Tralvex Yeap. All Rights Reserved.
Objekty v CLIPSu RNDr. Jiří Dvořák, CSc.
Databáze Jiří Kalousek.
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
C# - Exceptions (výjimky)
Objektové programování
Relační databáze.
Vypracoval: Ondřej Dvorský Třída: VIII.A
08/04/20151 Události (1) Členy třídy umožňující objektu nebo třídě rea- govat na zprávy (události) Dovolují třídě nebo objektu informovat jinou třídu nebo.
C# - I/O, streamy, práce se soubory
JavaScript Podmínky, cykly a pole.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
11/04/20151 Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
ADO – práce s databázemi
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
13/04/20151 Datový typ třída – class (1) Datový typ definovaný uživatelem Poskytuje mechanismus pro modelování entit, s nimiž manipulují aplikace Charakterizuje.
Sedmé cvičení Soubory Vstupně/výstupní proudy. Java cv72 Soubory Třída File Objekt popisující soubor na filesystému Nedá se z něho přímo číst a psát Představuje.
Databázové modelování
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Textové soubory Vytváření a zpracování textových souborů.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
23/04/20151 LINQ (1) LINQ (Language Integrated Query) je součást MS.NET Frameworku umožňující jednotný přístup k datům a jejich zpracování deklarativ-
IB111 Práce se soubory Správa paměti. Práce se soubory v Pythonu Soubor musíme „otevřít“ Poté s ním pracujeme –Čteme a/nebo zapisujeme Nakonec musíme.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2015.
Algoritmizace a programování Soubory. Oč jde? Vytvoření externího souboru Vytvoření externího souboru Tento soubor může být: Tento soubor může být: Textový.
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
Číslo projektu školy CZ.1.07/1.5.00/ Číslo a název šablony klíčové aktivity III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Číslo materiáluVY_32_INOVACE_ICT_I_S1_05.
Import dat Access (16). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Základní škola T. G. Masaryka a Mateřská škola Poříčany, okr. Kolín VY_32_INOVACE_ICT_04 ORGANIZACE DAT V PC Zpracovala: Mgr. Květoslava Štikovcová Číslo.
Úvod do programování 8. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015.
Datové typy MS Access (3). Projekt: CZ.1.07/1.5.00/ OAJL - inovace výuky Příjemce: Obchodní akademie, odborná škola a praktická škola pro tělesně.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Úvod do Pythonu – IO operace se soubory.
Vlastnosti souborů Jaroslava Černá.
Dialogová okna (1) Realizována pomocí třídy Form
Výukový materiál zpracován v rámci projektu
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
Návrhový vzor Flyweight
Oblast platnosti identifikátoru (1)
Typ pole (1) Proměnná typu pole představuje kolekci proměnných stejného datového typu, které mohou být označovány společným jménem (identifikátorem) Pole.
C# přehled vlastností.
Přednáška 9 Triggery.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud (stream) představuje „prostředníka“ mezi zdrojem, resp. příjemcem dat (např. soubor) a našim programem Knihovny dodávané s MS .NET Frameworkem poskytují abstraktní třídu Stream (definována ve jmenném prostoru System.IO), jež mimo jiné definuje abstraktní metody pro operace: čtení z proudu – Read zápis do proudu – Write přesun v proudu – Seek 16/05/2018

Soubory a proudy (2) Skutečnost, zda daná operace je na konkrétním proudu dostupná, lze ověřit pomocí vlastností CanRead, CanWrite a CanSeek V jazyku C# lze pracovat např. s proudy: FileStream (System.IO): pro práci se soubory MemoryStream (System.IO): pro práci s proudy uloženými v operační paměti NetworkStream (System.Net.Sockets): pro komunikaci v prostředí počítačové sítě Poznámka: výše uvedené proudy jsou definovány jako potomci abstraktní třídy Stream 16/05/2018

Třída FileStream (1) Instance třídy FileStream se používají ke čtení a k úpravám obsahu souboru Při vytváření instance třídy FileStream je možné konstruktoru předat např.: název souboru (možno zadat včetně cesty) informace o režimu otevření souboru (FileMode): např. vytvoření nového souboru, otevření existujícího souboru, přidávání dat na konec souboru informace o režimu přístupu (FileAccess): soubor určený pro čtení, pro zápis nebo pro čtení i zápis informace o režimu sdílení (FileShare): udávají, zda je soubor určený výlučně pro daný proud, nebo jej současně mohou (pro specifikované operace) používat i jiné proudy 16/05/2018

Třída FileStream (2) Definuje např. vlastnosti: Length: vrací počet bytů v proudu Position: vrací nebo nastavuje aktuální pozici v proudu Načítání informací z proudu (souboru) se pro-vádí pomocí metody: int Read(byte[] a, int offset, int count) Metoda Read: načítá do pole a od indexu offset nejvýše count bytů vrací počet načtených bytů (nebo nulu, jestliže bylo dosaženo konce proudu) 16/05/2018

Třída FileStream (3) posouvá současnou pozici v proudu za poslední načtený byte Zápis informací lze realizovat pomocí metody void Write(byte[] a, int offset, int count) Metoda Write: zapisuje do proudu z pole a od indexu offset count bytů posouvá současnou pozici v proudu za poslední zapsaný byte Pro načtení, resp. zápis jednoho bytu je možné použít metodu ReadByte, resp. WriteByte 16/05/2018

Třída FileStream (4) Pro nastavení aktuální pozice v proudu slouží metoda long Seek(long offset, SeekOrigin origin) Parametr: offset: udává relativní pozici vzhledem k hodnotě parametru origin origin: specifikuje, zda pozice je vztažena k začátku, konci nebo aktuální pozici v proudu Metoda Seek vrací novou pozici v proudu Po dokončení práce se souborem by měl být příslušný proud uzavřen 16/05/2018

Třída FileStream (5) Soubory lze uzavřít voláním metody Close Metodu Close není nutné volat: stačí zajistit, aby každý proud byl korektně uvolněn je zapotřebí, aby proud byl uzavřen za všech okol-ností Za účelem uvolňování zdrojů existuje rozhraní IDisposable definující metodu Dispose, která příslušný zdroj uvolní Při práci se soubory by měly být použity bloky try a finally sloužící pro ošetření výjimek 16/05/2018

Třída FileStream (6) Příklad: FileStream fs; try { fs = new FileStream(”data.txt”); fs.Write(…); } finally { if (fs != null) fs.Dispose(); } Jazyk C# umožňuje zjednodušit použití rozhra-ní IDisposable pomocí klíčového slova using 16/05/2018

Třída FileStream (7) Příklad: using (FileStream fs = new FileStream(”data.txt”)) { fs.Write(…); } Pro čtení (zápis) z (do) proudů je možné také využít třídy: BinaryReader, BinaryWriter: pracují s otevřeným proudem (přístupným pomocí vlastnosti BaseStream) jako s binárním souborem dovolují číst (zapisovat) vestavěné datové typy StreamReader, StreamWriter: pracují s otevřeným proudem (přístupným pomocí vlast-nosti BaseStream) na úrovni znaků textu v nějakém kódování (standardně UTF-8) umožňují s obsahem souboru pracovat jako s textem 16/05/2018

Třída BinaryReader Definována ve jmenném prostoru System.IO Umožňuje načítání binárních hodnot Pro vytvoření její instance je zapotřebí mít otevřený proud Poskytuje zejména metody pro načítání hodnot vestavěných datových typů: ReadBoolean, ReadByte, ReadChar, ReadDecimal, ReadDouble, ReadInt16, ReadInt32, ReadInt64, ReadSByte, ReadSingle, ReadString, ReadUInt16, ReadUInt32, ReadUInt64 Po každém načtení se pozice v proudu posune za poslední načtený byte 16/05/2018

Třída BinaryWriter Definována ve jmenném prostoru System.IO Umožňuje zápis binárních hodnot Pro vytvoření její instance je zapotřebí mít otevřený proud Obsahuje 18x přetíženou metodu Write pro zápis různých vestavěných typů do proudu Při každém zápisu se automaticky posouvá pozice v proudu za poslední (zapsaný) byte Změnu aktuální pozice v proudu je možné provést i pomocí metody Seek 16/05/2018

Třída StreamReader (1) Definována ve jmenném prostoru System.IO Potomek abstraktní třídy TextReader Načítá znaky z proudu Načítání je možné realizovat pomocí metody: int Read(): načítá z proudu jeden znak reprezentovaný jako Int32 posunuje pozici v proudu za načtený znak int ReadBlock(char[] buffer, int index, int count): načítá do pole buffer od indexu index nejvýše count znaků vrací počet načtených bytů posunuje pozici v proudu za poslední načtený znak 16/05/2018

Třída StreamReader (2) string ReadLine(): string ReadToEnd(): načítá z proudu řádek znaků a vrací jej jako řetězec string ReadToEnd(): načítá z proudu všechny znaky od aktuální pozice až do jeho konce (vrací je jako řetězec) 16/05/2018

Třída StreamWriter Definována ve jmenném prostoru System.IO Potomek abstraktní třídy TextWriter Zapisuje znaky do proudu Zapisování je možné realizovat pomocí přetíže-ných metod: Write(): zapisují data různých datových typů (v závislosti na pře-tížené variantě) do proudu WriteLine(): za poslední zapsaný znak zapisují symbol konce řádku 16/05/2018

Třídy StringReader a StringWriter Definovány ve jmenném prostoru System.IO Třída: StringReader je potomkem třídy TextReader StringWriter je potomkem třídy TextWriter Umožňují práci obdobným způsobem jako třídy StreamReader a StreamWriter Operace však neprobíhají nad proudy (soubory), ale nad řetězci Vhodné pro práci s textovými informacemi ulo-ženými v operační paměti 16/05/2018

Manipulace se soubory K provádění operací se soubory (vytváření, ko-pírování, mazání, přesouvání, otevírání apod.) je možné využít třídy: File (System.IO): statická třída, která definuje statické metody, např.: Copy, Create, Delete, Exists, GetAttributes, GetCreationTime, Move, Open, SetAttributes, SetCreationTime FileInfo (System.IO): definuje: vlastnosti, např.: Attributes, CreationTime, DirectoryName, Exists, Extension, Length, Name instanční metody, např.: CopyTo, Create, Delete, MoveTo, Open 16/05/2018

Manipulace s adresáři K provádění operací s adresáři (vytváření, mazá-ní, přesouvání, zjišťování souborů a podadresářů v adresáři apod.) je možné využít třídy: Directory (System.IO): statická třída, která definuje statické metody, např.: CreateDirectory, Delete, Exists, GetCreationTime, GetCurrentDirectory, GetDirectories, GetFiles, GetLogicalDrives, Move, SetCreationTime, SetCurrentDirectory DirectoryInfo (System.IO): definuje: vlastnosti, např.: Attributes, CreationTime, Exists, Extension, Name instanční metody, např.: Create, CreateSubDirectory, Delete, GetDirectories, GetFiles, MoveTo 16/05/2018

Třída Path Statická třída, která provádí operace nad řetězci, jež obsahují informace o adresářových (soubo-rových) cestách Definuje statické metody, např.: ChangeExtension: mění příponu Combine: vytváří z pole řetězců cestu GetExtension: vrací příponu GetFileName: vrací jméno a příponu GetFileNameWithoutExtension: vrací jméno bez přípony GetRandomFileName: vrací náhodné jméno souboru nebo adresáře 16/05/2018

Serializace, deserializace (1) představuje uchování stavu objektu proces konvertování datových struktur nebo objektů uložených ve vnitřní paměti na posloupnost bytů, kterou lze následně uložit do nějakého úložiště (např. soubor, databáze), případně přenést sítí Deserializace: opačný proces k serializaci, tj. převedení posloup-nosti bytů na kopii původního objektu Pomocí serializace je možné např. ukládat data aplikace, ukládat její nastavení nebo zasílat data prostřednictvím počítačové sítě 16/05/2018

Serializace, deserializace (2) .NET Framework umožňuje provádět různé ty-py serializací, např.: binární: provádí serializaci v binárním formátu zachovává datové typy (identitu instance) na základě uložených dat je možné automaticky rekon-struovat původní objekt možné realizovat pomocí třídy BinaryFormatter SOAP: vhodná pro komunikaci mezi aplikacemi, které používají heterogenní architektury možné realizovat pomocí třídy SoapFormatter 16/05/2018

Serializace, deserializace (3) XML: provádí serializaci do formátu XML serializuje pouze veřejné vlastnosti a datové položky nezachovává datové typy možné realizovat pomocí třídy XmlSerializer 16/05/2018

Třída XmlSerializer (1) Definována ve jmenné prostoru System.Xml.Serialization Umožňuje serializaci (deserializaci) do (z) do-kumentů XML Dovoluje ovládat, jakým způsobem jsou objekty kódovány Třída, jejíž objekty chceme serializovat musí: obsahovat bezparametrický konstruktor, popř. žádný parametrický konstruktor být definována s přístupností public 16/05/2018

Třída XmlSerializer (2) Při vytváření instance třídy XmlSerializer (v době volání konstruktoru) se jako parametr předává typ objektů, jež budou serializovány (deserializovány) Poznámka: předávaný datový typ se specifikuje pomocí operá-toru typeof, popř. pomocí metody GetType Třída XmlSerializer poskytuje metody: Serialize: provede serializaci objektu prostřednictvím potomka třídy Stream, TextWriter nebo XmlWriter 16/05/2018

Třída XmlSerializer (3) Deserialize: provede deserializaci objektu vrácená hodnota je typu object Při serializaci pomocí třídy XmlSerializer je možné využít různé atributy, např.: [XmlIgnore]: vlastnost nebo datová položka, před níž je tento atribut uveden, nebude serializována [XmlAttribute(”Name”)]: provede změnu z párové značky na nepárovou hodnota vlastnosti (datové položky) bude uvedena v atri-butu Name 16/05/2018

Třída XmlSerializer (4) Serializaci do formátu XML lze také realizovat pomocí třídy DataContractSerializer: dovoluje serializaci i neveřejných členů (vlastností a datových položek) třída, jejíž objekty mají být serializovány, musí být označena atributem [DataContract] členy, které se budou serializovat musí být označeny atributem [DataMember] poskytuje metody: WriteObject: provede zápis do XML dokumentu nebo proudu ReadObject: provede načtení dat z XML dokumentu nebo proudu 16/05/2018

Třída BinaryFormatter (1) Definována ve jmenné prostoru System.Runtime.Serialization. Formatters.Binary Provádí serializaci (deserializaci) do (z) binár-ního formátu Třída, jejíž objekty chceme serializovat, musí: mít před svou definicí specifikovaný atribut [Serializable] obsahovat pouze serializovatelné členy (výjimku tvoří datové položky, u nichž je použitý atribut [NonSerialized]) 16/05/2018

Třída BinaryFormatter (2) Konstruktoru se nepředává informace o typu serializovaných objektů Poskytuje metody: Serialize: provede serializaci objektu do zadaného proudu (potomek třídy Stream) Deserialize: provede deserializaci objektu ze zadaného proudu vrácená hodnota je typu object 16/05/2018

JSON serializace (1) Serializaci (deserializaci) do (z) notace JSON (JavaScript Object Notation) lze učinit pomocí třídy DataContractJsonSerializer V době volání konstruktoru se předává typ, je-hož objekty budou serializovány Třída DataContractJsonSerializer poskytuje metody: WriteObject: provede serializaci do notace JSON ReadObject: provede deserializaci z notace JSON 16/05/2018

JSON serializace (2) JSON serializaci je možné realizovat i pomocí třídy JsonConvert: nutné nainstalovat balíček Json.NET (http://www.newtonsoft.com/json) třída je definována ve jmenném prostoru Newtonsoft.Json poskytuje metody: SerializeObject: vrací serializovaný objekt jako řetězec (string) DeserializeObject: na základě zadaného řetězce a parametrizovaného typu objektu provede deserializaci 16/05/2018

Práce s databázemi (1) .NET Framework poskytuje prostředky pro pří-stup k různým typům databází Pro zpřístupnění konkrétní databáze je nutné se k ní nejprve připojit: připojení lze realizovat pomocí některého z potom-ků abstraktní třídy DbConnection Mezi potomky třídy DbConnection patří: SqlConnection: slouží pro připojení k databázi SQL serveru 16/05/2018

Práce s databázemi (2) OleDbConnection: OdbcConnection: pro připojení k databází podporující OLE DB, např. MS Access OdbcConnection: umožňuje připojení k databázi podporující ODBC (Open Database Connectivity) OracleConnection: slouží pro připojení k databázi Oracle EntityConnection: určena pro připojení ke konceptuálnímu modelu a zdroji dat 16/05/2018

Práce s databázemi (3) Pro reprezentaci příkazů SQL nebo uložených procedur, které mají být spuštěny jsou k dispo-zici potomci abstraktní třídy DbCommand Tyto třídy jsou specifické pro konkrétní data-báze a patří mezi ně: SqlCommand OleDbCommand OdbcCommand OracleCommand EntityCommand 16/05/2018

Práce s databázemi (4) Pro načítání řádků ze zdroje dat lze využít po-tomky abstraktní třídy DbDataReader, např: SqlDataReader OleDbDataReader OdbcDataReader OracleDataReader EntityDataReader Poznámka: třídy založené na DbConnection, DbCommand a DbDataReader se označují jako Data Providers (poskytovatelé dat) 16/05/2018

Třída SqlConnection (1) Definována ve jmenném prostoru System.Data.SqlClient Reprezentuje spojení s databázovým serverem SQL Je definována s modifikátorem sealed  nel-ze na základě ní definovat třídu jako jejího po-tomka Připojení k SQL serveru je realizováno zadáním tzv. připojovacího řetězce (connection string) 16/05/2018

Třída SqlConnection (2) Připojovací řetězec může být zadán: v době volání konstruktoru (jako parametr) pomocí vlastnosti ConnectionString příklad: ”server=localhost;user=root; database=test” Poskytuje metody: Open: otevře spojení s databázovým serverem Close: uzavře dříve otevřené spojení s databázovým serverem 16/05/2018

Třída SqlConnection (3) Otevření a uzavření databáze je časově poměrně náročná operace  je využíván fond připojení Poznámka: parametry fondu připojení lze nastavit v připojova-cím řetězci 16/05/2018

Třída SqlCommand (1) Definována ve jmenném prostoru System.Data.SqlClient Reprezentuje příkaz SQL (nebo uloženou proce-duru), který se má spustit na SQL serveru Definována s modifikátorem sealed SQL příkaz, který se má provést může být spe-cifikován: v době volání konstruktoru prostřednictvím vlastnosti CommandText 16/05/2018

Třída SqlCommand (2) Hodnota vlastnosti CommandText je interpre-tována dle hodnoty vlastnosti CommandType: Text: příkaz SQL (implicitní hodnota) TableDirect: jméno tabulky StoredProcedure: jméno uložené procedury Pro provedení příkazu SQL je rovněž nutné uvést databázové spojení (získané při vytváření instance třídy SqlConnection) Spojení lze zadat: v době volání konstruktoru pomocí vlastnosti Connection 16/05/2018

Třída SqlCommand (3) Spuštění příkazu se provádí voláním metody: ExecuteNonQuery: určena pro příkazy, které nevrací žádnou hodnotu (např. INSERT, DELETE apod.) vrací počet ovlivněných řádků ExecuteReader: používáno v případě, že SQL příkaz vrací množinu dat (např. příkaz SELECT) vytváří (vrací) instanci třídy SqlDataReader, pomocí níž je možné získat vrácená data 16/05/2018

Třída SqlCommand (4) ExecuteScalar: používána pro příkazy, které vrací jednu hodnotu (např. SELECT s agregační funkcí) vrací první sloupec prvního řádku ve výsledné množině nebo null (pokud výsledná množina je prázdná) vrácená hodnota je typu object 16/05/2018

Třída SqlCommand (5) Třída SqlCommand obsahuje mimo jiné vlast-nost Parameters: specifikuje kolekci parametrů spojených s příkazem SQL přidání parametru do kolekce společně s jeho hod-notou se provádí pomocí metody AddWithValue Poznámka: parametry jsou (v příkazu SQL) zapisovány pomocí zástupných značek uvozených symbolem @ 16/05/2018

Třída SqlDataReader (1) Definována ve jmenném prostoru System.Data.SqlClient Umožňuje načítání (zpřístupňování) řádků z da-tabáze SQL Prochází množinu dat po jednotlivých (řádcích) záznamech Její instance je vrácena jako výsledek volání metody ExecuteReader Pro přesun na následující záznam (řádek) slouží metoda Read 16/05/2018

Třída SqlDataReader (2) Metoda Read vrací hodnotu: true: jestliže existují další řádky false: v opačném případě Jednotlivé atributy záznamů jsou přístupné po-mocí indexu (indexování začíná vždy od nuly) nebo názvu sloupce zapsaného v hranatých závorkách, případně pomocí metod Get… Po ukončení práce s objektem třídy SqlData-Reader je zapotřebí provést jeho uzavření po-mocí metody Close 16/05/2018