Hoofdstuk 24: DCT – gegevens selecteren

24.1          Inleiding gegevens selecteren
24.2          DataView

24.3          Berekend veld
Oefeningen hoofdstuk 24

24.1         Inleiding gegevens selecteren

In dit hoofdstuk wordt besproken hoe een DataSet gevuld wordt enkel en alleen met de gegevens die de gebruiker nodig heeft. Met behulp van de TableAdapter worden de geselecteerde data voor de DataTable van de DataSet beperkt in het geval dat de gebruiker niet alle gegevens uit de oorspronkelijke tabel nodig heeft. Hierdoor wordt minder geheugenruimte in beslag genomen en werkt het programma sneller en efficiënter.

Met de methode Fill van de TableAdapter wordt een DataTable van een DataSet opgevuld. De methode Fill werkt hiervoor met een SQL-commando. De TableAdapter kan met meerdere methoden uitgebreid worden die allemaal een ander SQL-statement gebruiken om de DataTable te vullen.
Top

24.2         DataView

Met behulp van een DataView kan een filter gemaakt worden voor een DataTable zonder dat er een verbinding gemaakt moet worden met de database. De DataView werkt enkel op één enkele DataTable. De DataView bevat zelf geen data, maar werkt rechtstreeks met de DataTable via een index. Hierbij wordt verwezen naar de records in de DataTable.

Een DataView wordt meestal aangemaakt via de eigenschap DefaultView van de DataTable.

In het onderstaande voorbeeld wordt een DataView met ingestelde RowFilter aangemaakt voor de DataTable tblProducten:

DataView dtvProducten = New DataView(tblProducten);
dtvProducten.RowFilter = “Voorraad is null”;

De eigenschap RowFilter zorgt dat de gegevens gefilterd worden. Bijgevolg kunnen enkel de gegevens geraadpleegd worden die voldoen aan de zoekwaarde ingesteld bij de RowFilter.

Met de eigenschap Sort wordt bepaald op welke kolom een sortering uitgevoerd wordt. De waarde van de eigenschap Sort is een String. Bijvoorbeeld het alfabetisch rangschikken van de producten op productnaam:

dtvProducten.Sort =”Productnaam ASC”;

De methode Find wordt gebruikt om snel te zoeken in de index die opgesteld is voor de eigenschap Sort. Er kan alleen gezocht worden op waarden van kolommen die opgegeven zijn bij de eigenschap Sort. Het resultaat is een integer die de index van de record aangeeft in de gesorteerde reeks. Bijvoorbeeld zoeken in de hoeveelste record de productnaam “Tofu” voorkomt:

dtvProducten.Sort = “Productnaam ASC”;
intRecord = dtvProducten.Find(“Tofu”);

Top

24.3         Berekend veld

Een berekend veld gebruiken in een DataSet kan op de hieronder beschreven werkwijzen gebeuren:

  • het SQL-statement aanpassen zodat het berekend veld wordt teruggegeven of;
  • het berekend veld toevoegen in de DataSet Designer of;
  • het berekend veld toevoegen in de code.

Oefeningen hoofdstuk 24

Oefening 24-1     Ontwerp een formulier frmProdPerLev waarin de gebruiker een bedrijf kan selecteren in een keuzelijst met invoervak. Na selectie van het bedrijf verschijnen de volgende gegevens van de producten van de gekozen leverancier:  productnummer, productnaam, prijs per eenheid en voorraad. Via de knoppen kan er genavigeerd worden in de productenlijst zodat telkens de gegevens van één product getoond worden.

Oefening 24-2     Ontwerp een formulier frmProdPerLevGrid waarin de producten van een geselecteerd bedrijf, alfabetisch gesorteerd op productnaam getoond worden in een DataGridView. Verder wordt ook het aantal producten van het geselecteerd bedrijf weergegeven.

Oefening 24-3     Ontwerp een formulier frmKlanten waarin de klantengegevens kunnen opgezocht worden aan de hand van een naam die ingevuld wordt in een TextBox.

Oefening 24-4     Herhaal oefening 24-3 maar ontwerp het formulier met een keuzelijst.

Oefening 24-5     Ontwerp een formulier frmInventaris waarin de inventariswaarde van alle producten in tabelvorm weergegeven wordt (productnummer, productnaam, voorraad, prijs per eenheid en inventariswaarde).

Oefening 24-6     Ontwerp een formulier frmOrders waarin via een keuzelijst een ordernummer kan gekozen worden. Voor de gemaakte keuze verschijnt de naam van de klant.
Top
OPLOSSINGEN

Vorige          Volgende