14B - Werken met een database - mg

Werken met een database - querying
Programming C# - II
Week 14B

1 / 18
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 1

In deze les zitten 18 slides, met tekstslides.

time-iconLesduur is: 90 min

Onderdelen in deze les

Werken met een database - querying
Programming C# - II
Week 14B

Slide 1 - Tekstslide

Wat gaan we doen
  • Thema: queries uitvoeren op een database
  • Vereiste voorkennis doornemen
  • Manieren om data op te halen
  • Oefenen

Slide 2 - Tekstslide

Waarom
  • Vorige les use-cases zijn zelfde als hier
  • Misschien nog nieuwe inzichten?

Slide 3 - Tekstslide

Hoe
  • Doornemen van de theorie
  • Demonstratie
  • Gezamelijk stap-voor-stap query opbouwen / uitvoeren
  • Zelfstandig een query opbouwen en uitvoeren

Slide 4 - Tekstslide

Wat ken je al (voorkennis)
  • PRC-1!
  • Collections (Array / List / ...)
  • Iteraties (Loops: for / while / foreach)
  • Vorige les (verbinden naar een DB)

Slide 5 - Tekstslide

MySqlConnection
  • Nodig voor overige MySql componenten (soms onder water)
  • Initialiseer mbv connectiestring
  • (connectiestring evt. dmv MySqlConnectionStringBuilder)

Slide 6 - Tekstslide

MySqlCommand
  • CommandText
  • Connection
  • Parameters (volgende slide)
  • ExecuteReader
  • ExecuteQuery
  • ExecuteNonQuery
  • ExecuteScalar

Slide 7 - Tekstslide

MySqlParameter
  • SQL Injection
  • Optimalisatie (query plans etc)
  • Type bepaling / formatering
  • Quotes (/ escapes)
  • Demo SQL Injection

Slide 8 - Tekstslide

MySql...
  • DataAdapter
  • DataReader
  • (BulkLoader)
  • (DateTime)
  • (CommandBuilder)

Slide 9 - Tekstslide

...DataSet
  • In-memory representatie van data, evt. met relaties
  • Kan uit een database komen maar hoeft niet
  • Dataset - Eén of meerdere tabellen
  • Tabel - Eén of meerdere kolommen
  • Benaderbaar via index (cardinal) of kolomnaam
  • Vulling vaak dmz dataadapter -> MySqlDataAdapter.Fill(dataset)

Slide 10 - Tekstslide

DataSet - voorbeeld #1
var adapter = new MySqlDataAdapter("select ...", new MySqlConnection(...));
DataSet resultSet = new DataSet();
var rowsAdded = adapter.Fill(resultSet);

dataGridResults.DataSource = resultSet.Tables["tabelnaam"]; // of [index]
dataGridResults.DataMember = "tabelNaam";

Slide 11 - Tekstslide

DataSet - voorbeeld #2
  • Gebruik van datasource wizard 
  • Volg stappen in document CSharp Lessen II - 13.3

Slide 12 - Tekstslide

Vragen tot zover?

Slide 13 - Tekstslide

(PRC-III / IV)
  • DataGridView <-- DataAdapter: tight coupling, niet ideaal
  • Bij grotere projecten DAL / services laag
  • Ontsluiten met stored procedures
  • Gebruik ORM framework -> Entity Framework

Slide 14 - Tekstslide

Gezamelijk aan de slag
...

Slide 15 - Tekstslide

Zelfstandig aan de slag
  • ....

Slide 16 - Tekstslide

Vragen n.a.v. opdracht

Slide 17 - Tekstslide

Bedankt!
  • Vragen
  • Volgende les: meerdere Forms in een winforms applicatie

Slide 18 - Tekstslide