Opdag, hvordan du udsteder de mest almindelige SQL-kommandoer ved hjælp af VB.NET.

VB.NET tilbyder en strømlinet tilgang til databaseoperationer med en robust ramme. Ved at bruge dens kraft kan du få relevant information hurtigt og med minimal indsats.

Tag et kig på nogle praktiske eksempler, der viser, hvordan du bruger VB.NET til at udføre SQL-forespørgsler, og se, hvordan du kan sikre, at datahentning er både effektiv og effektiv.

Opsætning af din lokale SQL-server

Start med at opsætte en SQL-server til at gennemgå alt trin for trin. I eksemplerne nedenfor vil du se et Windows-miljø, men hvis du bruger en andet operativsystem som Linux og har en anden SQL-server, bare rolig; den generelle logik vil forblive den samme.

På grund af sin enkelhed og nul konfigurationstilgang er SQLite et glimrende valg for begyndere.

For at konfigurere tingene skal du oprette en ny mappe og derefter åbne en kommandoprompt og naviger til den. Kør følgende kommando for at oprette et nyt .NET-projekt, hvor du kan bruge sproget VB.NET:

dotnet new console -lang VB -o MyVBApp

Du har nu et projekt kaldet MyVBApp. Fortsæt opsætningen ved at integrere SQLite-pakken i dit VB.NET-projekt ved hjælp af NuGet, en populær pakkehåndtering til .NET. Kør denne kommando:

dotnet add package System.Data.SQLite

Når du har tilføjet SQLite, kan du nemt opsætte en lokal database.

Du kan finde al koden til disse eksempler i projektets GitHub-depot.

Download InitializeDatabase.vb fil fra projektets arkiv. Denne særlige fil vil hjælpe dig med at konfigurere din database. Som du kan se i denne fil er der nogle brugere og brugerlande. Du kan bruge dette som en prøvedatabase.

Kommandoen du brugte til at oprette VB.NET-projektet oprettede en fil med navnet Program.vb. Åbn denne fil og opdater den som følger:

Module Program
Sub Main(args AsString())
DatabaseInitializer.InitializeDb()
EndSub
EndModule

Kør dette program, og du skulle se det oprette en fil med navnet mindatabase.db. Dette er den simple database, som du vil bruge i de følgende eksempler.

Etablering af en databaseforbindelse med SQL i VB.NET

Etablering af en forbindelse ved hjælp af SQLite i VB.NET er ligetil. Fortsæt med at redigere Program.vb fil og fjern det eksisterende indhold af hovedunderrutinen. Denne fil fungerer som projektets kerne.

Du kan definere en forbindelse til databasefilen, mydatabase.db, med denne kodelinje:

Dim connectionString AsString = "Data Source=mydatabase.db; Version=3;"

Datakilde angiver databasefilnavnet. Hvis filen ikke eksisterer, vil SQLite oprette en ny database, når den etablerer en forbindelse.

Det næste trin er at bruge SQLiteConnection klasse for at oprette en forbindelsesforekomst. Du skal altid bruge en Ved brug af blokere, når du arbejder med databaseforbindelser for at undgå potentielle lækager eller deadlocks:

Using conn AsNew SQLiteConnection(connectionString)
conn.Open()

' Database operations go here
EndUsing

Bruger-blokken sikrer, at forbindelsen automatisk lukkes, når den er fuldført.

Din endelige Program.vb-fil skulle se sådan ud:

Imports System
Imports System.Data.SQLite

Module Program
Sub Main(args AsString())
Dim connectionString AsString = "Data Source=mydatabase.db; Version=3;"

Try
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()
Console.WriteLine("Successfully connected to the database!")

'You can perform database operations here.
EndUsing
Catch ex As SQLiteException
Console.WriteLine("Error: " & ex.Message)
EndTry
EndSub
EndModule

Denne kode vil oprette forbindelse til mydatabase.db-databasen og udskrive en bekræftelsesmeddelelse, når den lykkes. Hvis der opstår en fejl, vil den udskrive detaljer til konsollen.

Sådan henter du data og indlæser dem i et array

Det VÆLGSQL kommando er den vigtigste måde at hente data fra en SQL-database. Hvis du har et bord navngivet Brugere i din database, og du vil have Navn felt fra hver post i den tabel, skal du bruge SELECT på denne måde:

SELECT Name FROM Users

Du kan trække data fra databasen og indlæse dem i et array ved at tilføje denne forespørgsel til filen Program.vb:

Dim query AsString = "SELECT Name FROM Users"
Dim names AsNew List(OfString)()

Using conn AsNew SQLiteConnection(connectionString)
conn.Open()

Using cmd AsNew SQLiteCommand(query, conn)
Using reader As SQLiteDataReader = cmd.ExecuteReader()
While reader.Read()
names.Add(reader("Name").ToString())
EndWhile
EndUsing
EndUsing
EndUsing

' Now the 'names' list is full of users' names.
' You can convert this list to an array if you want:
Dim namesArray() AsString = names.ToArray()

' Print array content for testing purposes
ForEach name In namesArray
Console.WriteLine(name)
Next

Du vil se en liste over navne på konsollen, svarende til indholdet af din databasetabel:

Denne kode indlæser dataene i en Liste struktur – som har en dynamisk størrelse – før den konverteres til et array ved færdiggørelse. Denne tilgang er meget nyttig i situationer, hvor du ikke på forhånd kender antallet af poster, du vil hente.

Sådan bruger du INSERT til at tilføje data til en database

Du kan bruge INDSÆT I kommando for at tilføje nye data til en database. Overvej for eksempel Brugere tabel, der har to kolonner navngivet Navn og Land.

Den grundlæggende SQL-forespørgsel, du kan bruge til at tilføje en ny bruger, ville være:

INSERT INTO Users (Name, Country) VALUES ('Fatih', 'TR')

For at tilføje en ny bruger til databasen ved hjælp af denne forespørgsel skal du opdatere filen Program.vb som følger:

Dim query AsString = $"INSERT INTO Users (Name, Country) VALUES ('{name}', '{country}')"
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()

Using cmd AsNew SQLiteCommand(query, conn)
cmd.ExecuteNonQuery()
EndUsing
EndUsing

Console.WriteLine($"{name} has been successfully added to the database!")

Dette simple eksempel bruger strenginterpolation til at bygge forespørgslen, men du bør undgå dette i produktionskoden, da det er sårbar over for SQL-injektion. Alternativet er parametriserede forespørgsler, som gør databaseoperationer sikrere og mere effektive.

Parametriserede forespørgsler bruger pladsholdere i stedet for direkte strengsammenkædning til at tilføje værdier til SQL-forespørgsler. Denne tilgang vil hjælpe dig med at undgå mange sikkerhedstrusler:

Dim query AsString = "INSERT INTO Users (Name, Country) VALUES (@Name, @Country)"
'...
cmd.Parameters.AddWithValue("@Name", userName)
cmd.Parameters.AddWithValue("@Country", userCountry)

Andre tips til at arbejde med en database fra VB.Net

Databaseoperationer i VB.NET kan i begyndelsen virke skræmmende, men med nogle få retningslinjer kan du nemt mestre det grundlæggende.

  • Brug parametriserede forespørgsler til at beskytte sig mod sikkerhedssårbarheder.
  • Luk altid din databaseforbindelse, når du er færdig med at hente eller opdatere data.
  • Vedligehold din database for at optimere dens struktur, efterhånden som din datamodel ændrer sig over tid.
  • Glem ikke at lave sikkerhedskopier i tilfælde af nødstilfælde.

Som med enhver teknologi udvikler databaser sig. Software bliver opdateret, nye værktøjer dukker op, og vi opdager bedre måder at gøre tingene på. Det er en god idé at holde sig orienteret og opdateret. Nogle værktøjer fungerer som mellemled, f.eks Entitetsramme, hvilket gør det nemmere at skrive databaserelateret kode.

Sådan tager du din VB.NET-rejse videre

VB.NET er med sin dybt rodfæstede forbindelse til Microsofts økosystem både robust og brugervenlig. For virkelig at forstå dens magt, start med den officielle dokumentation leveret af Microsoft. Derfra kan du udforske onlinekurser, fora og fællesskaber, hvor erfarne udviklere deler deres viden og indsigt.

Husk, at hver ekspert engang var en nybegynder. Med konsekvent indsats, nysgerrighed og de rigtige ressourcer vil du hurtigt finde dig selv i at navigere VB.NET med tillid og lethed. Efterhånden som du udvikler dig, tøv ikke med at eksperimentere, stille spørgsmål og – vigtigst af alt – nyd opdagelsesprocessen.