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

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

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

Jazyk C# a platforma.net

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

Jazyk C# a platforma.net

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

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

1. Téma 12 - Textové soubory a výjimky

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

Indexové seznamy. známe už pole, kde ale musí být předem známa velikost indexové seznamy umí růst dynamicky

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pro kontrolu správného formátu hodnoty N použijeme metodu try-catch.

POLE. - datová struktura ze složek stejného typu, ke kterým se přistupuje pomocí indexů

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

Bezpečnost a bezpečné programování

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

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

Objekty jako zapozdření dat. začneme vytvářet vlastní objekty a třídy

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

ADO.NET Objekt Command (online scenář)

Tabulková data. budeme pracovat s CSV soubory položky oddělené středníkem, např.

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

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Metodický list k didaktickému materiálu

Seznámení s knihovnou ADO.NET

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Pokročilá práce s proměnnými

KTE / ZPE Informační technologie

Programování v jazyce JavaScript

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

Programování v jazyce JavaScript

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

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

Typický prvek kolekce pro české řazení

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Jazyk C# (seminář 5)

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Zápis programu v jazyce C#

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe

Nejzajímavější jsou události MouseDown a KeyDown.

Středoškolská technika 2017 PROGRAM NA GENEROVÁNÍ PRVOČÍSEL

Soubor jako posloupnost bytů

Tvorba informačních systémů

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Programování v jazyce JavaScript

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

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

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

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

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Př. program s popojíždějícím autíčkem o 50 pixelů při každém stisku Popojeď

Komponenty v.net. Obsah přednášky

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Druhy souborů. textové. binární. nestrukturované txt strukturované - ini, xml, csv. veřejné bmp, jpg, wav proprietární docx, cdr, psd

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

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

Object-relational mapping (JPA, Hibernate)

Větvení programů příkaz IF

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT


III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Desetinná čísla. pro celá čísla jsme používali typ int. pro desetinná čísla používáme typ double

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

8. přednáška: Soubory a proudy

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Programování jako nástroj porozumění matematice (seriál pro web modernivyuka.cz)

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Metodický list k didaktickému materiálu

Textové soubory. alg9 1

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

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

Čipové karty Lekařská informatika

Ošetřování chyb v programech

KTE / ZPE Informační technologie

Množina čísel int stl-set-int.cpp

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

PREPROCESOR POKRAČOVÁNÍ

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký, Miroslav Beneš

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

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

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.

Semestrální práce z DAS2 a WWW

Stromy. Příklady. Rekurzivní datové struktury. Základní pojmy

Regulární výrazy. Vzory

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

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

<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************

Transkript:

Jazyk C# - přístup k datům Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Data Reader BI-PCS Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 1/6

// DataReader - connected pristup k datum using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; // pridano using System.Data.SqlClient; namespace DBDataReader { public partial class Form1 : Form { public Form1() { InitializeComponent(); // zakladni objekty pro pristup k datum SqlConnection conn; SqlCommand cmdselect; SqlDataReader reader; SqlCommand cmdupdate; SqlCommand cmdsp; SqlParameter parmin,parcount; int ID, Krestni, Prijmeni, Osloveni, Mesto; private void Form1_Load(object sender, EventArgs e) { conn = new SqlConnection(); // connection string (informace o pripojeni k DB) je vhodnejsi // umistit napr. do configuracniho souboru conn.connectionstring = "User ID=sa;Password=Pa$$w0rd;" + "Data Source=localhost;Initial Catalog=NW"; // pouziti windows security // conn.connectionstring = "Integrated Security=yes; " + "Data Source=localhost;Initial Catalog=NW"; bool chyba = false; try { conn.open(); // otevreni connection catch (SqlException ex) { MessageBox.Show(ex.Message); // osetreni chyb (provest vsude) foreach (SqlError err in ex.errors) { // vlastni chyby DB (casto totez) MessageBox.Show(err.Message); chyba = true; P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 2/6

catch (Exception ex) { MessageBox.Show(ex.Message); chyba = true; if (chyba) return; // command pro nacteni dat cmdselect = new SqlCommand(); cmdselect.connection = conn; cmdselect.commandtext = "Select EmployeeID,LastName,FirstName," + "TitleOfCourtesy,City From Employees"; // command pro upravu dat cmdupdate = new SqlCommand(); cmdupdate.connection = conn; // priprava Stored Procedury (SP) cmdsp = new SqlCommand(); cmdsp.connection = conn; cmdsp.commandtext = "ProductsByNames"; cmdsp.commandtype = CommandType.StoredProcedure; // priprava parametru parmin = new SqlParameter(); parmin.parametername = "@min"; // pro SQL Servera se MUSI // SHODOVAT se jmenem v SP parmin.direction = ParameterDirection.Input; parmin.sqldbtype = SqlDbType.Int; cmdsp.parameters.add(parmin); // pridani do kolekce parametru NUTNE!! parcount = new SqlParameter(); parcount.parametername = "@count"; parcount.direction = ParameterDirection.Output; parcount.sqldbtype = SqlDbType.Int; cmdsp.parameters.add(parcount); // DataReader reprezentuje (zpristupnuje) nactena data // posle Select na DB a vrati DataReader reader = cmdselect.executereader(); // vrati index sloupce daneho jmena (pro efektivni pristup k datum) ID = reader.getordinal("employeeid"); Krestni = reader.getordinal("firstname"); Prijmeni = reader.getordinal("lastname"); Osloveni = reader.getordinal("titleofcourtesy"); Mesto = reader.getordinal("city"); P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 3/6

void FillForm() { //.Read zpristupnuje dalsi record if (reader.read()) { // vrati false, pokud dalsi record neexistuje // Varianta 1 - efektivni, NEprehledna txtid.text = reader.getint32(0).tostring(); txtkrestni.text = reader.getstring(2); txtprijmeni.text = reader.getstring(1); txtosloveni.text = reader.getstring(3); txtmesto.text = reader.getstring(4); */ // Varianta 2 - NEefektivni, prehledna txtid.text = reader["employeeid"].tostring(); txtkrestni.text = reader["firstname"].tostring(); txtprijmeni.text = reader["lastname"].tostring(); txtosloveni.text = reader["titleofcourtesy"].tostring(); txtmesto.text = reader["city"].tostring(); */ // Varianta 3 - efektivni, prehledna txtid.text = reader.getint32(id).tostring(); txtkrestni.text = reader.getstring(krestni); txtprijmeni.text = reader.getstring(prijmeni); txtosloveni.text = reader.getstring(osloveni); txtmesto.text = reader.getstring(mesto); */ // Varianta 4 - osetreni null hodnot // tostring konvertuje null na prazdny retezec txtid.text = reader[id].tostring(); txtkrestni.text = reader[krestni].tostring(); txtprijmeni.text = reader[prijmeni].tostring(); txtosloveni.text = reader[osloveni].tostring(); txtmesto.text = reader[mesto].tostring(); private void btnnext_click(object sender, EventArgs e) { private void btnupdate_click(object sender, EventArgs e) { string strupdate; // vytvoreni SQL commandu (pozor na SQL injection!!) strupdate = "Update Employees Set LastName='" + txtprijmeni.text + "' Where EmployeeID=" + txtid.text; txtsql.text = strupdate; // debug only!! cmdupdate.commandtext = strupdate; P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 4/6

// po connection s OTEVRENYM DataReaderem NELZE poslat dalsi SQL // command!! (s vyjimkou rezimu MARS na connection u SqlServera) reader.close(); // ExecuteNonQuery posle na databazi SQL command, ktery NEVRACI data cmdupdate.executenonquery(); // ExecuteNonQuery vraci pocet updatovanych,deletovanych,... recordu // int pocet = cmdupdate.executenonquery(); // dalsi moznosti DataReaderu // int cislo = (int)cmdselect.executescalar(); // vrati jednu hodnotu do { // Read nacita data z jedineho selectu daneho commandu while (reader.read()) { //... // NextResult - zacit cist data dalsiho selectu; // pokud neexistuje, vrati false while (reader.nextresult()); */ reader = cmdselect.executereader();// znovuotevreni DataReadera // pouziti Stored Procedury private void btnsp_click(object sender, EventArgs e) { txtsql.clear(); parmin.value = int.parse(txtmin.text); // hodnota vstupniho param reader.close(); reader = cmdsp.executereader(); // zde nelze cist vystupni parametry // txtsql.text += "\r\npocet radku: " + parcount.value + "\r\n"; while (reader.read()) { txtsql.text += reader["unitsinstock"] + "; " + reader["productname"] + "\r\n"; // zde take ne // txtsql.text += "\r\npocet radku: " + parcount.value + "\r\n"; reader.close(); // VYSTUPNI parametry lze cist az PO UZAVRENI DataReaderu!! txtsql.text += "\r\npocet radku: " + parcount.value + "\r\n"; P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 5/6

reader = cmdselect.executereader(); P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 6/6