PDA-applikationer med .NET: Inlämningsuppgift 3

Utgå från din lösning på inlämningsuppgift 2. I den uppgiften fanns inget krav på att sakerna i komihåg-listan skulle finnas kvar om programmet avslutades, men det ska du lägga till i den här uppgiften. Programmet ska därför spara sina data i en databas.

Några tips

Man behöver inte följa de här förslagen.
  1. Studera lektion 11 om hur man använder ADO.NET och databashanteraren SQL Server CE.
  2. Använd programmet SkapaDatabas för att skapa en databas som innehåller en lämplig tabell för att lagra komihåg-listan.
  3. Använd programmet KollaDatabas under utvecklingsarbetet för att studera innehållet i tabellen, lägga in exempelrader, och rensa tabellen. På så vis kan du kolla att ditt eget program gör rätt.
  4. Om du lyckades skilja hanteringen av uppgiftslistan i uppgift 2, till exempel i en särskild klass som heter Uppgiftslista, från resten av programmet, så kan det räcka med att göra ändringar i den klassen för att lagra data i databasen. I stället för att ha en egen lista, så ska programmet nu lägga sina data i databasen.
  5. Så fort man gör en ändring i uppgifterna (dvs lägger till en ny, tar bort en gammal, eller ändrar i en uppgift) så ska motsvarande ändring göras i databasen.
  6. Man kan räkna med att inga andra program samtidigt ändrar i databasen, så ditt komihåglisteprogram behöver inte kolla ifall saker plötsligt ändrats i databasen medan programmet kör.
  7. För att punkten ovan ska vara sann, måste du vara försiktig hur du använder KollaDatabas om du kör det programmet samtidigt som ditt komihåglisteprogram.
  8. Om du har både komihåglisteprogrammet och KollaDatabas igång samtidigt, kan det uppstå problem med att databasen är låst. Då kan det kastas ett undantag om "file sharing". Så här ser det ut om det händer i KollaDatabas:
    En meddelanderuta om ett fildelningsfel
    Samma fel kan uppstå om man glömmer att stänga en uppkoppling med con.Close().
  9. Create table-kommandot i programmet SkapaDatabas deklarerar kolumnen Nummer som nyckel. Därför kommer det att kastas ett undantag från SQL Server CE om man försöker lägga in två rader med samma värde på Nummer. Så här ser det ut om det händer i KollaDatabas:
    En meddelanderuta om ett nyckelfel
  10. Kommunikationen mellan programmet och databashanteraren sker ju i form av SQL-kommandon, som är textsträngar. Bygg först ihop textsträngen i en variabel. Om det är något som inte fungerar, så är det ofta en god idé att studera den textsträngen, antingen i debuggern eller till exempel med en MessageBox.
  11. Lägg try-catch-block runt alla databasanrop, och lägg en felutskrift med MessageBox i catch-grenen, så du ser om något gick galet, och i så fall vad. (Titta i programmet KollaDatabas.)
  12. Tänk på att läraren ska provköra programmet, och du vet inte hur hans PDA-emulator råkar se ut just nu. Därför är det bra om ditt program kollar om databasen finns, och skapar en lämplig databas om den inte redan fanns.
  13. Avsnittet Microsoft SQL Server CE på s 825-860 i läroboken är förstås lämpligt att läsa när man ska göra den här uppgiften.

Redovisning

Till den här uppgiften ska du lämna in två saker:

Rapporten ska innehålla följande:

Läs i Hur man skriver en rapport om grunderna för rapportskrivning. Om man vill slippa höra mitt eviga gnäll om svenska språket, så bör man undvika särskrivningar och satsradningar.

Packa också ihop applikationen i en Zip-fil. Du hittar katalogen under till exempel C:\Documents and Settings\Padrone\My Documents\Visual Studio Projects. Om ditt projekt heter Komihåglistan, så heter katalogen med projektet C:\Documents and Settings\Padrone\My Documents\Visual Studio Projects\Komihåglistan. Packa ihop hela katalogen med projektet.

Skicka både rapporten och Zip-filen med e-post till läraren. Men döp först om Zip-filen från nånting.zip till exempelvis nånting.info för att överlista överambitiösa virusfilter.

Om samarbete: Varje student ska göra en egen lösning, och skicka in den, men det är inte förbjudet att samarbeta eller fråga andra studenter om hjälp. Däremot ska man i så fall tydligt ange vilka som man samarbetat med.

Skriv gärna i ärenderaden på brevet vilken kurs det handlar om, till exempel "PDA-uppgift 3", och inte bara "Uppgift 3".

Föregående lektion | Lektionslista | Projektuppgiften


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 22 oktober 2007