ADO.Net
Tijdens dit labo ontwikkelen we een applicatie die het mogelijk maakt om alle gegevens van een winkel uit een MySQL-databank te halen. De applicatie wordt ontwikkeld m.b.v. ADO.Net.
Opzetten gegevensbank
-
Start als administrator de MySQL-service op.
- Start de mysql-client vanuit het windows-menu(wachtwoord: e=mc**2).
-
Maak de databank en tabellen aan:
- Download het bestand databank.zip en unzip het bestand in C:\temp.
- Voer in de mysql-client volgend commando uit: \. C:\\temp\\scripts\\create_classicmodels.sql
- Voer in de mysql-client volgend commando uit: \. C:\\temp\\scripts\\load_classicmodels.sql
-
Normaal is het gegevensbanksysteem nu opgestart en opgevuld met gegevens.
ADO.Net-Driver
Om de connectie met de databank te kunnen realiseren heb je een driver nodig deze kan je hier vinden. Installeer deze op je pc.
Opgave
Maak een console-applicatie die volgende acties uitvoert op de opgezette databank:
- Een lijst van alle customers tonen.
- Eén customer selecteren op basis van customerNumber.
- Eén customer toevoegen aan de databank.
De applicatie voldoet aan volgende eisen:
- Geschreven in c#
- Het ADO.NET gedeelte maakt gebruik van DataReaders niet van DataAdapters
- Alle nodige query's komen uit een configuratiebestand (zie voorbeeld theorie).
- Zorg dat je applicatie beschermd is tegen SQL-injectie.
- Zorg voor een goede foutafhandeling.
- Zorg dat je connectie steeds correct wordt afgesloten.
Opgave deel 2
Maak een console-applicatie die zowel orders als orderdetails los van elkaar kan toevoegen, verwijderen en aanpassen in de databank.
Dit zijn de query's die je hiervoor mag gebruiken:
<add key="select_orderdetails" value="select * from orderdetails"/>:
<add key="delete_orderdetails" value="delete from orderdetails where orderNumber = @orderNumber and productCode = @productCode"/>:
<add key="update_orderdetails" value="update orderdetails set quantityOrdered=@quantityOrdered,priceEach=@priceEach,orderLineNumber=@orderLineNumber where orderNumber=@orderNumber and productCode = @productCode"/>:
<add key="insert_orderdetails" value="insert into orderdetails (orderNumber,productCode,quantityOrdered,priceEach,orderLineNumber) values (@orderNumber,@productCode,@quantityOrdered,@priceEach,@orderLineNumber)"/>:
<add key="select_orders" value="select * from orders"/>:
<add key="delete_orders" value="delete from orders where orderNumber = @orderNumber"/>:
<add key="update_orders" value="update orders set orderDate=@orderDate,requiredDate=@requiredDate,shippedDate=@shippedDate,status=@status,comments=@comments,customerNumber=@customerNumber where orderNumber = @orderNumber"/>:
<add key="insert_orders" value="insert into orders (orderNumber,orderDate,requiredDate,shippedDate,status,comments,customerNumber) values (@orderNumber,@orderDate,@requiredDate,@shippedDate,@status,@comments,@customerNumber)"/>:
De applicatie moet voldoen aan volgende eisen:
- Geschreven in c#
- Het ADO.NET gedeelte maakt gebruik van DataAdapters niet van DataReaders
- Alle nodige query's komen uit een configuratiebestand (zie voorbeeld theorie).
- Zorg dat je applicatie beschermd is tegen SQL-injectie.
- Zorg voor een goede foutafhandeling.
- Zorg dat je connectie steeds correct wordt afgesloten.
Opgave deel 3
Pas je vorige oplossing zo aan dat je een volledig order (inclusief orderdetails) volledig in één keer kan wegschrijven naar de databank.
Wanneer bij het toevoegen een stap mislukt dient je databank terug te keren naar de toestand voor het toevoegen (rollback).
Je past dit toe op DataAdapters (gebruik deze uit vorige oplossing) niet op DataReaders.
Afgeven
Plaats je oplossing van dit labo in de directory ADO op je U:/drive voor donderdag 19 november om 18u.
Oplossing
Een mogelijke oplossing kan je hier vinden.
|