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

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

Jazyk C# a platforma.net

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mělká a hluboká kopie

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

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

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

Metodický list k didaktickému materiálu

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

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

Větvení programů příkaz IF

NÁVRH A TVORBA HUDEBNÍ DATABÁZE

Metodický list k didaktickému materiálu

Programování v jazyce JavaScript

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

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

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

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

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

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

Čipové karty Lekařská informatika

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

Dynamické datové struktury IV.

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

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

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

Bc. Karel Mozdřeň. C# a ASP.NET. Text předpokládá základní znalost programování v jazyce C#!

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

Dynamické datové struktury III.

BI-EP1 Efektivní programování 1

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

Abstraktní třídy, polymorfní struktury

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

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Virtual private database. Antonín Steinhauser

Object-relational mapping (JPA, Hibernate)

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

Datové struktury. alg12 1

Základní pojmy. Matice(řádky, sloupce) Matice(4,6) sloupce

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

PG 9.5 novinky ve vývoji aplikací

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

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

Zápis programu v jazyce C#

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

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

Java - řazení objektů

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

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

Seznámení s knihovnou ADO.NET

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Základní přehled SQL příkazů

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

Java a XML. 10/26/09 1/7 Java a XML

Databázové systémy úvod

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

Programování v jazyce JavaScript

UŽIVATELSKÉ ROZHRANÍ WINDOWS-FORM DESKTOPOVÉ APLIKACE - CVIČENÍ

Abstraktní datové typy

Náhodná a pseudonáhodná čísla

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Michal Podzimek

KTE / ZPE Informační technologie

U koly na procvic ení jazyka T-SQL

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.

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

Dynamické datové struktury I.

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

Bakalářská práce Databáze Caché a prostředí.net


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

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

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

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

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

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

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

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 Zpracování dat po částech ( stránkování DataSetu) 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/5

// Nacitani a zpracovavani dat v DataSetu po castech (vyrazne slozitejsi) 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 DBPerPartes { public partial class Form1 : Form { public Form1() { InitializeComponent(); SqlConnection conn; SqlCommand cmdselect; SqlDataAdapter adapter; DataSet ds; DataView view; int CurrentRow; const int BUFFER_SIZE = 10; // zvoleny pocet radku bufferu (ukazka) int MinID, MaxID = 0; // vim, ze MINIMALNI ProductID je 1 nebo vetsi private void Form1_Load(object sender, EventArgs e) { conn = new SqlConnection(); conn.connectionstring = "User ID=sa;Password=Pa$$w0rd; " + "Data Source=localhost;Initial Catalog=NW"; cmdselect = new SqlCommand(); cmdselect.connection = conn; cmdselect.commandtext = "Select ProductID,ProductName " + "From Products Order By ProductID"; adapter = new SqlDataAdapter(); adapter.selectcommand = cmdselect; ds = new DataSet(); // nasledujici nacte 5000 radku od 100000 - neefektivni; // chyby pri insertech a deletech jinymi uzivateli // adapter.fill(ds, 100000, 5000, "Products"); P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 2/5

// vytvori strukturu tabulky (prazdnou tabulku) adapter.fillschema(ds, SchemaType.Source, "Products"); view = new DataView(ds.Tables["Products"]); // chci mit data vzdy setridena vzestupne podle ProductID view.sort = "ProductID"; FillBufferUp(); // nacteni jednoho bufferu "smerem nahoru" - uprava SQL dotazu void FillBufferUp() { // vyber max. BUFFER_SIZE recordu s hodnotou > MaxID string strsql = "Select Top " + BUFFER_SIZE + " ProductID, ProductName " + "From Products " + "Where ProductID > " + MaxID + " Order By ProductID"; // lze definovat (podstatne slozitejsi) klauzuli where, i pokud // mame trideni podle jinych kriterii (napr. LastName, FirstName). // Casto je treba pridat do trideni Primary Key // (jako posledni polozku do Order By) txtsql.text = strsql; // debug only cmdselect.commandtext = strsql; ds.tables["products"].rows.clear(); // buffer se nevyprazdňuje!! adapter.fill(ds, "Products"); // nove minimalni a maximalni hodnoty ProductID (hodnoty setrideny) int MaxIndex = view.count - 1; MinID = (int)view[0]["productid"]; MaxID = (int)view[maxindex]["productid"]; // nalezeni max. hodnoty PoductID v DB int GetLastID() { int LastID; string strmax; SqlCommand cmdmax; strmax = "Select Max(ProductID) From Products"; cmdmax = new SqlCommand(); cmdmax.commandtext = strmax; cmdmax.connection = conn; // connected pristup vyzaduje otevrene connection!! conn.open(); LastID = (int)cmdmax.executescalar(); // jedna hodnota conn.close(); return LastID; P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 3/5

// nacteni jednoho bufferu "smerem dolu" - uprava SQL dotazu void FillBufferDown() { // vyber max. BUFFER_SIZE recordu s hodnotou < MinID string strsql = "Select Top " + BUFFER_SIZE + " ProductID, ProductName " + "From Products " + "Where ProductID < " + MinID + " Order By ProductID DESC"; txtsql.text = strsql; // debug only cmdselect.commandtext = strsql; ds.tables["products"].rows.clear(); adapter.fill(ds, "Products"); int MaxIndex = view.count - 1; MinID = (int)view[0]["productid"]; // OK - sort ve view zaridi MaxID = (int)view[maxindex]["productid"]; // nalezeni min. hodnoty PoductID v DB int GetFirstID() { int FirstID; string strmin; SqlCommand cmdmin; strmin = "Select Min(ProductID) From Products"; cmdmin = new SqlCommand(); cmdmin.commandtext = strmin; cmdmin.connection = conn; conn.open(); FirstID = (int)cmdmin.executescalar(); conn.close(); return FirstID; void FillForm(int Index) { DataRowView dr = view[index]; txtproductid.text = dr["productid"].tostring(); txtproductname.text = dr["productname"].tostring(); private void btfirst_click(object sender, EventArgs e) { MaxID = 0; FillBufferUp(); // naplneni 1. bufferu P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 4/5

private void btnprev_click(object sender, EventArgs e) { if (CurrentRow > 0) FillForm(--CurrentRow); else { // GetLastID a FillBufferUp vykonavat pod lockingem // (v transakci) - aby nikdo nemohl odmazat radky v dobe // mezi GetFirstID a FillBufferDown // jsou pred FirstID jeste nejake radky? if (MinID > GetFirstID()) { FillBufferDown(); // nacteni dalsiho bufferu FillForm(CurrentRow = view.count - 1); private void btnnext_click(object sender, EventArgs e) { if (CurrentRow < view.count - 1) FillForm(++CurrentRow); else { // GetLastID a FillBufferUp - opet pod lockigem // jsou za MaxID jeste nejake radky? if (MaxID < GetLastID()) { FillBufferUp(); // nacteni predchoziho bufferu private void btnlast_click(object sender, EventArgs e) { MinID = int.maxvalue; FillBufferDown(); // nacteni posledniho bufferu FillForm(CurrentRow = view.count - 1); P. Štěpán Jazyk C# - přístup k datům BI-PCS, výpis 1 5/5