Gå til indholdet

Brug af System.Data.SQLite

Som nævnt på andre sider er der flere måder at “tale” med databaser på. I denne sektion kigger vi kort på brugen af en connected tilgang, men det er vigtigt at du ved at man i den virkelige verden typisk arbejder med ORM produkter.

Demo ved brug af SQLite

For at gøre det så nemt som muligt tage resten af artiklen udgangspunkt i SQLite og min simple eksempel database. Målet er at skabe en applikation som henter alle personer fra Person-tabellen, og udskriver alle der er højere end 175 cm. sorteret efter efternavn. Brug SQLite Browser til at kigge ned i Person-tabellen inden du skriver koden så du kender lidt til de data der er tale om.

  • Start med at hente Person-databasen (people.db) og gem den i c:\temp
  • Åbn en terminal i c:\temp og opret en ny konsol applikation med
dotnet new console -n MinDbApp
  • Naviger til mappen (cd MinDbApp)
  • Tilføj NuGet-pakken System.Data.SQLite.Core som din applikation kan tale “SQLite’s“
dotnet add package System.Data.SQLite.Core
  • Tilføj følgende kode til Program.cs

using System.Data.SQLite;

const string databaseFil = "c:\\temp\\people.db";
const string connectionString = "Data Source=" + databaseFil;

using SQLiteConnection cn = new SQLiteConnection(connectionString);
cn.Open();
using SQLiteCommand cm = new SQLiteCommand(cn);
cm.CommandText = "select * from Person where Height>175 order by LastName";
cm.CommandType = System.Data.CommandType.Text;
var reader = cm.ExecuteReader();
while (reader.Read())
    Console.WriteLine($"{reader["PersonId"]} {reader["LastName"]} {reader["Height"]}");
- Kør applikationen med dotnet run - Nu skulle du gerne se en liste af personer

Her er en kort forklaring på koden:

Først defineres stien til SQLite-databasefilen og forbindelsesstrengen, der vil blive brugt til at oprette forbindelse til databasen.

Dernæst oprettes der en ny instans af SQLiteConnection ved hjælp af forbindelsesstrengen, og en forbindelse til databasen åbnes med Open()-metoden.

En ny SQLiteCommand instans oprettes, der repræsenterer en SQL-forespørgsel, der skal udføres på databasen. Forespørgslen er angivet som en tekststreng ved hjælp af CommandText-egenskaben, og dens type defineres som tekst (CommandType.Text).

ExecuteReader()-metoden på SQLiteCommand-objektet udfører SQL-forespørgslen og returnerer et SQLiteDataReader-objekt. Dette objekt bruges til at læse de returnerede data række for række.

Endelig går en while-løkke igennem hver række i resultatet ved hjælp af Read()-metoden på SQLiteDataReader-objektet. For hver række udskrives PersonId, LastName, og Height til konsollen.

Vær opmærksom på, at using-sætninger sørger for, at de oprettede ressourcer lukkes og ryddes korrekt op, når de ikke længere er nødvendige. Dette er vigtigt for at undgå lækager af ressourcer og sikre, at forbindelsen til databasen lukkes korrekt.

Konklusion

Dette var blot et kode eksempel på brug af System.Data.SQLite. Som sagt vil man i professionel udvikling bruge ORM, men nu har du en ide om hvordan vi gjorde tidligere.

Info

Vi kigger på brugen af ORM senere når du har lært om objektorienteret programmering.