Eksempler til Blazor, API & ADO.NET - Læs mere om ADO.NET her Notion ADO.NET, om Blazor her Notion Blazor og API tekonologier her Notion API Enten skal man manuelt sætte databasen op eller starte med at køre consol applikationen en gang.
Her er en consoleapp, som implementeret meget lavpraktisk. Den bruger ikke et objekt, men bare 2 strenge til at integrerer med databasen.
Den indeholder 4 metoder udover main() og Init().
CreateDatabase her tjekker den om ADONET databasen allerede findes på vores databaseserver eller laver den databasen.
InsertData her indsætter den værdierne som er skrevet ind for de 2 strenge inden programmet kører.
CreateTable her laver den vores tabel med en SQL kommando som er gemt som en streng.
ReadData her læser den databasen ud fra SQL kommando som er gemt som en streng og bruger et while loop til at skrive dem ud i konsollen.
Her er en Blazor applikation som gør brug af samme database og tabel som er blevet oprettet af vores Consolapp. Derfor skal den anden applikation startes inden Blazor virker.
Under projektet er der 2 forskellige Razor pages som kommunikere med databasen.
Under den her side er alt koden inkluderet, der er normalt dårlig praksis, men det er for at vise udviklingen. Det eneste vi har saperet er at vores klasser er inde i et Class Libary kaldet Domain Models.
Standart siden er meget simpel med 2 input felter og en knap med en eventhandler.
Her indefra er der defineret 4 metoder til at håndtere hver CRUD operation.
Create bliver håndteret af InsertData()
Read bliver håndteret af ReadData()
Update bliver håndteret af EditData(int personID)
Delete bliver håndteret af DeleteData(int personID)
Her er koden mere struktureret end på CRUD.razor filen. Vi har lagt alt vores database logik ind i Services mappen. Den giver en del mere konfigurering i starten af filen.
Udover at vi skal bruge "@using Domain_Models" for at få adgang til vores Person-klasse. Skal vi også have adgang til Services mappen som vi gør med "@using BlazorADONET.Services". For at få adgang til vores services, skal vi også bruge dependency injection her "@inject IDatabaseService DatabaseService"
Vores DatabaseService har 2 metoder som vi gør brug af.
SearchPersons(string selectedOption, string searchValue) her kan vi søge en specifik person op i vores database ud fra de kolonner som der findes i databasen. Fordi at vi bruger ADO.NET er det ikke et problem med SQL Injection.
GetColumnNames() her bruger vi det indbyggede ["COLUMN_NAME"] til at få en liste med alle kolonne værdi, så vi senere kan bruge dem i vores dropdown menu!