‫Welkom terug.
‫In deze video gaan we de rest van onze gebruikersinterface toevoegen en voorlopig voegen we
‫één functionaliteit toe, die ZUS gaat verwijderen.
‫Dus laten we doorgaan en dat doen.
‫Zoals je kunt zien, is dit hoe de interface er min of meer uit zou moeten zien.
‫En we gaan het bijna op dezelfde manier bouwen.
‫We zouden het hetzelfde kunnen bouwen door dezelfde informatie hier onderaan in te typen.
‫Maar dit gaat meer over slepen en neerzetten, zodat we de Haskell-code kunnen uitvoeren die we nodig hebben of in het algemeen
‫de databasecode die we nodig hebben in C Sharp.
‫Laten we allereerst de gereedschapskist openen, zodat we de dingen kunnen zien die we nodig hebben en we
‫hebben knoppen nodig.
‫En ik ga een knop hier zo naar binnen slepen met een beetje afstand.
‫En deze knop zou iets moeten zeggen als inhoud verwijderen, dan ga ik die knop kopiëren, plakken,
‫ik ga hem ernaast slepen.
‫En deze was verwijder dier omdat we het niet verwijderen, maar we verwijderen het gewoon.
‫En Nimo en deze is overigens niet contemplatief te verwijderen.
‫Dus we hebben ook verwijderen en we hebben dier verwijderen nu kopiëren en plakken.
‫Ik ga het hier neerzetten, kopiëren en opnieuw plakken.
‫Eigenlijk is dat gewoon de knoppen maken voordat we ze hernoemen en hier.
‫En dan nog een onderaan hier en de laatste bovenaan rechts daar.
‫Dus misschien moeten we alles zo iets verder naar beneden slepen, zodat er genoeg ruimte is voor de delete-knop.
‫En deze kan zo gaan.
‫Oké, dus wat we nu eigenlijk net zo goed zouden kunnen doen, is die twee ook een beetje naar beneden slepen, zodat
‫de lijsten op dezelfde hoogte komen als die aan de rechterkant.
‫Nou, het is OK, het gaat niet om perfect, een perfecte gebruikersinterface hier, het gaat om andere onderwerpen, zoals je
‫weet.
‫Oké, dus vijfhonderd is te veel voor 50.
‫Zou goed moeten zijn.
‫En laten we nu eens kijken naar zeshonderd.
‫Dat is nog te veel.
‫Of zes.
‫Vijfentwintig.
‫Zeshonderd zou een beetje beter moeten zijn.
‫Misschien vijfentachtig of zoiets.
‫OK, dus nu zijn alle knoppen binnen.
‫Er zijn hoofdvenster ziet er goed uit.
‫We zouden zelfs de naam van onze titel kunnen veranderen.
‫Laten we er een dierentuinmanager van maken.
‫Oke.
‫We hebben deze lijst, de leidende dierentuin.
‫Nu kunnen we de inhoud van al die knoppen wijzigen.
‫Dus die was in de dierentuin.
‫Dat is update zoo.
‫Eigenlijk was die er niet bij er was een dier want ze staan niet in de volgorde van boven naar
‫beneden.
‫Ze hoeven alleen maar hier en daar in te klikken.
‫Je kunt meteen zien dat je de juiste voor mij selecteert.
‫Dus deze zou update zoo moeten zijn.
‫Die knop hier is update animal.
‫Die is het leidende
‫dier en die hier zal van dier tot dierentuin zijn, van dier tot dierentuin, en nu denk ik dat we klaar zijn en ze doen eigenlijk deze ene update
‫dierentuin, die moet worden veranderd.
‫Update niet meer.
‫Oke.
‫Dus nu zijn al onze knoppen in orde.
‫We hebben alleen een tekstvak hier in het midden nodig.
‫En ik ga het zo een beetje herpositioneren.
‫Maak het breder en ja, net zoals dat zou goed moeten zijn, we zouden zelfs de lettergrootte van het tekstvak kunnen
‫veranderen, zodat het een beetje groter is, maar dat zou goed moeten zijn.
‫Zoals ik al zei, niet over perfecte journalistiek hier of perfectionisme in deze gebruikersinterface.
‫OK, dus nu we dat hebben, kunnen we doorgaan en de verwijderknop toevoegen.
‫Dus ik ga dubbelklikken op de knop.
‫En ik krijg deze button-click-gebeurtenis, en eigenlijk vind ik deze naam niet leuk, dus misschien is dit niet de beste.
‫Laten we teruggaan en het veranderen.
‫Dus we hebben deze knop en het kreeg een evenement genaamd Button Click en ik
‫ga het Delete Zoo noemen en misschien zelfs zoiets als Underscore Click.
‫Dit wordt de nieuwe gebeurtenishandler die ik ga maken.
‫Ik ga die naam kopiëren en ik ga de methode zelf implementeren.
‫Het is een privé leegte.
‫Heeft het wel geklikt?
‫En zoals je weet, heeft het een object nodig, dat is de afzender en het heeft een gerouteerde gebeurtenisargs nodig en
‫ook hier.
‫Nu kunnen we hier eenvoudig eerst controleren of de knop werkt in het berichtvenster of laten zien dat er op de lead is geklikt
‫of iets dergelijks, dat er op de lead is geklikt.
‫Laten we het nu uitvoeren om te zien of de knop correct werkt.
‫Juist, dat zijn we.
‫Dit is dus onze interface.
‫Lijkt allemaal al goed.
‫Laten we nu de dierentuin verwijderen.
‫Verwijder dierentuin was perfect.
‫Dus de knop werkt.
‫Nu kunnen we doorgaan en het hier correct implementeren.
‫Wat ik ga doen, is dat ik een nieuwe query ga maken omdat ik gezond wilde zijn, ik wil dat het iets
‫verwijdert.
‫Dus ik ga het delete-sleutelwoord gebruiken uit welke tabel?
‫Van de dierentuintafel waar het idee gelijk aan is.
‫En nu gaan we iets gebruiken dat zoo ID heet bij Zoo ID, en dat zal onze eigen variabele zijn die we
‫moeten maken.
‫We moeten dus een nieuw soort parameter creëren, zoals we hebben gezien met Escorial-parameters hier.
‫Dus het is scheef commando parameters hadden met waarde.
‫En ik ga je de andere manier laten zien om met dit schoolgebeuren om te gaan.
‫Dus zonder deze adapter te gebruiken.
‫Rechts.
‫Dus we gaan gewoon het volgende gebruiken, aangezien het nieuwe Ezekial-commando's worden.
‫En hier heeft het reddingscommando wat informatie nodig.
‫Dus allereerst moet het een query uitvoeren en het moet je verbinding vragen.
‫Dus niets nieuws hier.
‫Dat hebben we hier al gezien.
‫Stel uw opdrachtquery en vraag uw verbinding.
‫En nu kunnen we doorgaan en deze verbinding starten, vraag uw verbinding open.
‫Dus we openen een verbinding om je mee uit te vragen en nu voegen we de parameter toe aan deze opdracht.
‫Dus parameters beginnen advertentie met waarde.
‫En hier gebruik ik dit bij Zooid dat ik hier aan de top had.
‫Het moet dus precies hetzelfde zijn als hier.
‫En dan zeg ik gewoon wat ik wil verwijderen en ik ga zeggen lijst zus dot geselecteerde waarde.
‫Maar de geselecteerde waarde is niet de naam van het dier, want het is eigenlijk de ID en nu kunnen we die code
‫uitvoeren.
‫Dus obscure opdrachten die Skoller uitvoeren, voert de query uit en retourneert de eerste kolom van de eerste rij en de resultatenset
‫die door de query wordt geretourneerd.
‫Extra kolommen met rollen worden genegeerd.
‫Dus waar we dit voor nodig hebben, is dat het zo'n beetje de eenvoudigste manier is om dit Eskil-commando uit te
‫voeren, dat de query op onze Ezekial-verbinding gaat uitvoeren.
‫En dat heeft gewoon geen overhead.
‫Het wordt een supereenvoudige uitvoering.
‫Oke.
‫En nu moeten we natuurlijk ook de verbinding verbreken.
‫Dus vraag de verbinding zo dichtbij, want zoals je kunt zien, moeten we de verbinding openen.
‫We moeten de parameters toevoegen, de code uitvoeren en dan moeten we de verbinding
‫weer sluiten, omdat we anders tegen fouten kunnen aanlopen.
‫Wat ik nu wil laten zien, zijn de dierentuinen.
‫En er is één ding om hier rekening mee te houden, want we hebben veel dierentuinen, we
‫hebben veel dieren, en we hebben zelfs deze relatietabel, die beide heeft gecombineerd.
‫Dus de dieren die in een bepaalde dierentuin zijn.
‫Maar als ik een dierentuin verwijder, wil ik ook een verwijdering toepassen op alle verschillende dieren in dierentuinen.
‫Dus.
‫Laten we naar de gegevens gaan zodat het wat duidelijker is, laten we eens kijken naar de dierentuintafel en de
‫dierentuindierentafel.
‫Dus laten we zeggen dat ik de leidende New York ben, die het idee heeft van een, het heeft geen zin om Zooide één hier te
‫houden.
‫Dus deze Zahidi één en deze Eweida één en drie.
‫Dus ik kwam wel tegen dat die inzendingen niet meer nodig zijn omdat er geen dier in de dierentuin is, omdat de
‫dierentuin niet meer bestaat.
‫En daarom kunnen we die twee vermeldingen gewoon weggooien.
‫Maar we hoeven het niet handmatig te doen door het in code toe te passen.
‫We kunnen onze gegevenstabel ook daadwerkelijk aanpassen en het aanpassen ervan zal vrijwel het werk voor ons doen.
‫Dus open tafel definitie, dat is wat ik ga openen.
‫En wat ik hier aan het einde gewoon moet toevoegen, is op Delete Kaskade.
‫Rechts.
‫En ik deed het voor beide hier, dus voor beide beperkingen, voor onze buitenlandse sleutel voor dieren en onze dierentuin voor Hinkie.
‫Dus dat is voldoende, het verwijdert gewoon dit item dat er is als het corresponderende item niet beschikbaar is of meer, dus
‫de corresponderende ID in de dierentuin waarmee we zijn verbonden.
‫Dus laten we zeggen dat als we een dierentuin schrappen, dan hebben we niet alle dieren in een dierentuin meer
‫nodig, niet de dieren zelf, maar deze correlatie of deze relatie tussen de dierentuin en de dieren.
‫Die kunnen we dus ook kwijt.
‫Dat is wat deze twee vermeldingen hier zijn.
‫Deze ene undelete is Kaskade stelt ons in staat dit nu te doen voordat we de code kunnen uitvoeren, we moeten alleen updaten
‫om te zien dat dit daadwerkelijk fouten kan veroorzaken.
‫Dus ik ga gewoon de code uitvoeren.
‫Nu ga ik het starten en ik ga proberen iets te verwijderen en je zult de fout zien die hier van toepassing
‫is.
‫Dus ik ga Kyra verwijderen.
‫En er staat dat de akteverklaring in strijd was met de referentiebeperkingen. Het conflict deed
‫zich voor in de databasetabelzone.
‫Dus kolom zooid, de instructie is beëindigd.
‫Dus we hebben deze fout en als we naar fouten zoeken, ontdekken we dat dit komt omdat we precies dat
‫missen.
‫Dus op de lead cascade, en dat komt omdat we nog niet hebben bijgewerkt.
‫Dus laten we nu de database bijwerken met het nieuwe ontwerp hier met onze nieuwe bijgewerkte tabelbeperkingen.
‫En als dat eenmaal gedaan is, is dat afgerond en succesvol, dat is geweldig.
‫We kunnen het opnieuw starten en we zullen zien dat het wordt verwijderd.
‫Carol werkt nu.
‫Nu hebben we geen foutmelding gekregen, dus waarom is Cairo er nog steeds en dat heeft te maken met het feit dat we de methode die
‫deze lijst toont niet casten of aanroepen of deze lijst bijwerkt.
‫Dus laten we teruggaan naar onze code en het is eigenlijk hier.
‫Dus we hebben deze code en we moeten nu laten zien dat alle dieren eigenlijk alle dierentuinen laten zien zoals die dierentuinen.
‫Nu, dat begon weer en je zult zien dat de chiros al weg was.
‫Dus het is er niet meer, zoals je kunt zien, is verdwenen met verwijderd.
‫Het leidt nu naar Berlijn, POUM, en we krijgen een foutmelding.
‫Maar het verdween.
‫Dus zoals je kunt zien, was er een fout omdat we iets verwijderden en deze fout werd toegepast door
‫onze show ZUS of Associated Animal, ergens hier waar we de uitzondering noemden, we hadden deze vanguitzondering en het liet ons
‫deze fout zien.
‫Oké, maar dat is een hele stap vooruit.
‫Dus wat ik nu ga doen, is dat ik deze code ga updaten, zodat het ons programma niet goed stopt als we
‫een fout tegenkomen.
‫Dus ik ga een try, catch en uiteindelijk block bouwen.
‫Dus we hebben eindelijk nog niet zo vaak gebruikt, maar deze keer is het echt logisch.
‫Dus wat is de code die ik in mijn stam wil uitvoeren?
‫OK, nou, alles tot en met de uitvoering, dus dit kan allemaal fout gaan en dan.
‫Als we de verbinding hier en ten slotte willen sluiten, is dat de juiste manier, want als we hem hier openen, moeten we hem op
‫een gegeven moment sluiten en moeten we hem sluiten.
‫En tot slot, want zelfs als het werkte of niet werkte, willen we het gewoon sluiten en ervoor zorgen
‫dat het allemaal goed komt.
‫Hetzelfde met toont ons.
‫Dus of het werkte of niet, maakt niet uit.
‫We noemen gewoon de showmethode en dat zal goed de kleuren laten zien die nog in onze tafel liggen.
‫En in plaats van alleen maar een fout te maken, ga ik je naam hier gebruiken en accepteren.
‫Ik ga het E noemen en ik ga dat op mijn berichtenbox laten zien.
‫Dus berichtvenster tonen.
‫En deze zal het zijn om zo te rijgen.
‫Oké, nu, deze, we kunnen het X misschien noemen.
‫Misschien is dat beter, want het probleem hier is dat ons geroote evenement al EESA heet, we zouden dit
‫Yak's moeten noemen.
‫OK, laten we het nu opnieuw beginnen en kijken of we componenten van onze lijst kunnen verwijderen.
‫En we hebben er niet veel links rechts.
‫Dus laten we Tokyo verwijderen, dit krijgen en char for animal in a join verwacht dat de Paramatta-zone was die niet
‫werd geleverd.
‫En dat is eigenlijk een fout die ons helemaal niet helpt.
‫Dus ik ga dit berichtvenster hier verwijderen omdat, nou ja, we krijgen hier een foutmelding, maar ik negeer het voor nu
‫omdat het gewoon nog steeds werkt, toch?
‫Ons programma werkt nog steeds en doet wat het moet doen.
‫Dus het is gewoon hier dat deze code nog steeds wordt uitgevoerd, laat de bijbehorende dieren zien.
‫En in dit geval hebben we daar niets.
‫Rechts.
‫We hebben dus niet iets geselecteerd dat de bijbehorende dieren zou moeten laten zien.
‫Ik ga deze uitzondering hier gewoon wegwerken.
‫En trouwens.
‫Ja, al het andere zou goed moeten zijn.
‫Oké, dus, ja, dat is het zo'n beetje.
‫U weet nu hoe u componenten uit uw toepassing kunt verwijderen.
‫En in de volgende video gaan we dingen aan onze lijst toevoegen.
‫Dus tot ziens daar.