4175 WPF SQLite

Förberedande arbete med databas

En SQL-databas innehåller tabeller med data, som i excel. Data sparas i rader, se exemplet nedan.

Installera DB Browser for SQLite

Installera DB Browser for SQLite.

Starta programmet.

skapa databas

Gör en ny databas med valfritt namn t.ex. sqlite_db. Spara på lämpligt ställe.

skapa tabell i databasen

Klicka på fliken Execute SQL. Klistra in följande kod.

  CREATE TABLE 
  IF NOT EXISTS tower 
  (id INTEGER PRIMARY KEY AUTOINCREMENT ,
  name VARCHAR(128) NOT NULL,
  height INT);

Klicka på den blå pilen för att köra koden, se figur nedan. Då skapas en tabell med namnet tower om den inte redan finns.

För att se tabellen klickar du fliken Browse Data därefter väljer du tower i rullgardinsmenyn, se figur.

För att lägga till en rad i tabellen klickar du på New Record. Klicka därefter på rutan för name på rad 1. Skriv in Kaknästornet. Klicka därefter på rutan för height och skriv 155, se figur.

Vidare förklaring till SQL-koden ovan. Tabellen innehåller tre kolumner: id, name och height.

id

SQL-koden nedan

  (id INTEGER PRIMARY KEY AUTOINCREMENT ,

berättar att:

  • INTEGER: id ska innehålla heltal
  • AUTOINCREMENT : id ska börja på 1 och öka med ett för varje ny rad som läggs till i tabellen
  • PRIMARY KEY: varje id är unikt, kallas primär nyckel. Alla tabeller måste innehålla en sådan.

name

Följande SQL-kod

  name VARCHAR(128) NOT NULL,

anger nedanstående för kolumnen name:

  • VARCHAR(128): är en text som högst får vara 128 tecken
  • NOT NULL: måste ha ett värde

height

Sista SQL-raden, som visas nedan, berättar att kolumnen height ska innehålla heltal.

  height INT);

Lägg till rad med INSERT

Det går också att lägga till en rad i tabellen med följande SQL-kod.

  INSERT INTO tower (name, height) VALUES ("Burj Kahlifa", 828);

Klicka på fliken Execute SQL och klista in koden där. Tryck på den blå pilen för att köra koden.

Klicka på Browse Data för att se tabellen, se figur nedan.

Lägg till några torn på egen hand.

SELECT - välj rader för visning

Gå till fliken Execute SQL och klistra in följande kod för att visa tabellen, se figur nedan.

  SELECT * from tower

Pröva också att köra följande SQL-kod. Kör var och en av raderna var för sig.

  SELECT * from tower ORDER BY name ASC;
  SELECT * from tower ORDER BY name DESC;

Sortera själv på höjd.

Pröva var och en för sig:

  SELECT name from tower;

  SELECT name, height from tower;

  SELECT * FROM tower WHERE height > 600;

Vad visas?

UPDATE - ändra rad

Pröva:

  UPDATE tower SET name="Nya Kankäs" WHERE name="Kaknästornet";

DELETE - ta bort rad

Visa hela tabellen och kolla vad som hände.

  DELETE FROM tower WHERE id=3;

Visa hela tabellen och kolla vad som hände.

Exempel med höga torn i SQLite-databas

Ladda ner koden för projektet. Demonstration av databashantering med SQLite. Kod för DemoTowerSql finns på GitHub.

Direktlänk till klassen som hanterar databasen

Kör programmet. När programmet körs skapas en databas i mappen som visas i fönstret. Öppna databasen i DB Browser for SQLite. Titta på innehållet i databasen. Det är ungefär samma som du gjorde i övningen ovan.

Testa att:

  • lägga till ett torn
  • ändra på ett torn
  • ta bort ett torn

Kolla i DB Browser for SQLite vad som händer med tabellen tower.

Be din lärare förklara koden.

Arbeta med SQLite-databas i eget projekt

Steg i arbetet

Läs in nuget-paket

  1. Högerklicka på projektet i Solution Explorer
  2. välj: Manage NuGet Packages
  3. klicka på Browse
  4. sök på: Microsoft.Data.SQLite
  5. välj: Install

koda

Uppgift - frågesport

Lägg frågorna till din frågesport i en databas. Studera koden i projektet på GitHub.

Steg 1 - frågor i databas

Spela frågesporten med frågor lästa från databas.

Steg 2 - administrativt gränssnitt

Gör ett administrativt gränssnitt där du kan lägga till nya frågor, ändra på gamla fråga och ta bort en fråga.

Länkar

Dialog boxes overview, Microsoft

Microsoft.Data.Sqlite overview

SQL - CREATE Table, Tutorialspoint

How I Write SQL, Part 1: Naming Conventions, Launch by lunch

using statement (C# Reference), Microsoft

Öppna SQLite-databas

DB Browser for SQLite