Upptäck hur du utfärdar de vanligaste SQL-kommandona med VB.NET.
VB.NET erbjuder en strömlinjeformad metod för databasoperationer, med ett robust ramverk. Med hjälp av dess kraft kan du få relevant information snabbt och med minimal ansträngning.
Ta en titt på några praktiska exempel som visar hur du använder VB.NET för att utföra SQL-frågor, och se hur du kan säkerställa att datahämtning är både effektiv och effektiv.
Konfigurera din lokala SQL-server
Börja med att sätta upp en SQL-server för att granska allt steg för steg. I exemplen nedan ser du en Windows-miljö, men om du använder en annat operativsystem som Linux och har en annan SQL-server, oroa dig inte; den allmänna logiken kommer att förbli densamma.
På grund av sin enkelhet och nollkonfigurationsmetod är SQLite ett utmärkt val för nybörjare.
För att ställa in saker, skapa en ny mapp, sedan öppna en kommandotolk och navigera till den. Kör följande kommando för att skapa ett nytt .NET-projekt där du kan använda språket VB.NET:
dotnet new console -lang VB -o MyVBApp
Du har nu ett projekt som heter MyVBApp. Fortsätt installationen genom att integrera SQLite-paketet i ditt VB.NET-projekt med NuGet, en populär pakethanterare för .NET. Kör detta kommando:
dotnet add package System.Data.SQLite
När du har lagt till SQLite kan du skapa en lokal databas utan ansträngning.
Du kan hitta all kod för dessa exempel i projektets GitHub-förråd.
Ladda ner InitializeDatabase.vb fil från projektets arkiv. Denna speciella fil hjälper dig att konfigurera din databas. Som du kan se i den här filen finns det några användare och användares länder. Du kan använda detta som en exempeldatabas.
Kommandot du använde för att skapa VB.NET-projektet skapade en fil med namnet Program.vb. Öppna den här filen och uppdatera den enligt följande:
Module Program
Sub Main(args AsString())
DatabaseInitializer.InitializeDb()
EndSub
EndModule
Kör det här programmet och du bör se att det skapar en fil med namnet min databas.db. Detta är den enkla databasen som du kommer att använda i följande exempel.
Etablera en databasanslutning med SQL i VB.NET
Att upprätta en anslutning med SQLite i VB.NET är enkelt. Fortsätt redigera Program.vb fil och ta bort det befintliga innehållet i Main-subrutinen. Denna fil fungerar som projektets kärna.
Du kan definiera en anslutning till databasfilen, mydatabase.db, med denna kodrad:
Dim connectionString AsString = "Data Source=mydatabase.db; Version=3;"
Datakälla anger databasfilens namn. Om filen inte finns kommer SQLite att skapa en ny databas när den upprättar en anslutning.
Nästa steg är att använda SQLiteConnection klass för att skapa en anslutningsinstans. Du bör alltid använda en Använder sig av blockera när du arbetar med databasanslutningar för att undvika potentiella läckor eller dödlägen:
Using conn AsNew SQLiteConnection(connectionString)
conn.Open()
' Database operations go here
EndUsing
Blocket Använder säkerställer att anslutningen stängs automatiskt när den är klar.
Din sista Program.vb-fil bör se ut ungefär så här:
Imports System
Imports System.Data.SQLiteModule 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
Den här koden kommer att ansluta till databasen mydatabase.db och skriva ut ett bekräftelsemeddelande när den lyckas. Om ett fel uppstår kommer det att skriva ut detaljer till konsolen.
Hur man hämtar data och laddar den i en array
De VÄLJSQL kommando är det huvudsakliga sättet att hämta data från en SQL-databas. Om du har ett bord som heter Användare i din databas och du vill få namn fält från varje post i den tabellen, använd SELECT så här:
SELECT Name FROM Users
Du kan hämta data från databasen och ladda den i en array genom att lägga till den här frågan i 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 kommer att se en lista med namn på konsolen, motsvarande innehållet i din databastabell:
Denna kod laddar data till en Lista struktur – som har en dynamisk storlek – innan den konverteras till en array när den är klar. Detta tillvägagångssätt är mycket användbart för situationer där du inte i förväg vet hur många poster du kommer att hämta.
Hur man använder INSERT för att lägga till data till en databas
Du kan använda SÄTT IN I kommando för att lägga till ny data till en databas. Tänk till exempel på Användare tabell som har två namngivna kolumner namn och Land.
Den grundläggande SQL-frågan du kan använda för att lägga till en ny användare skulle vara:
INSERT INTO Users (Name, Country) VALUES ('Fatih', 'TR')
För att lägga till en ny användare till databasen med den här frågan uppdaterar du filen Program.vb enligt följande:
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!")
Detta enkla exempel använder stränginterpolation för att bygga frågan, men du bör undvika detta i produktionskoden eftersom det är sårbara för SQL-injektion. Alternativet är parametriserade frågor som gör databasoperationer säkrare och effektivare.
Parameteriserade frågor använder platshållare, istället för direkt strängsammansättning, för att lägga till värden till SQL-frågor. Detta tillvägagångssätt hjälper dig att undvika många säkerhetshot:
Dim query AsString = "INSERT INTO Users (Name, Country) VALUES (@Name, @Country)"
'...
cmd.Parameters.AddWithValue("@Name", userName)
cmd.Parameters.AddWithValue("@Country", userCountry)
Andra tips för att arbeta med en databas inifrån VB.Net
Databasoperationer i VB.NET kan till en början verka skrämmande, men med några riktlinjer kan du enkelt bemästra grunderna.
- Använd parametriserade frågor för att skydda mot säkerhetsbrister.
- Stäng alltid din databasanslutning när du är klar med att hämta eller uppdatera data.
- Underhåll din databas för att optimera dess struktur när din datamodell förändras över tiden.
- Glöm inte att göra säkerhetskopior i nödfall.
Som med all teknik utvecklas databaser. Programvaran uppdateras, nya verktyg dyker upp och vi upptäcker bättre sätt att göra saker på. Det är en bra idé att hålla sig informerad och uppdaterad. Vissa verktyg fungerar som mellanhänder, t.ex Entity Framework, vilket gör det lättare att skriva databasrelaterad kod.
Hur du tar din VB.NET-resa vidare
VB.NET, med sin djupt rotade koppling till Microsofts ekosystem, är både robust och användarvänlig. För att verkligen förstå dess kraft, börja med den officiella dokumentationen från Microsoft. Därifrån kan du utforska onlinekurser, forum och gemenskaper där erfarna utvecklare delar med sig av sina kunskaper och insikter.
Kom ihåg att varje expert en gång var nybörjare. Med konsekvent ansträngning, nyfikenhet och rätt resurser kommer du snart att hitta dig själv att navigera i VB.NET med tillförsikt och lätthet. När du utvecklas, tveka inte att experimentera, ställa frågor och – viktigast av allt – njut av upptäcktsprocessen.