Avatar billede micker Praktikant
28. november 2012 - 21:53 Der er 6 kommentarer og
1 løsning

CRUD - Vedligeholdelse brugeroplysninger i fil

Hejsa

I forbindelse med en skoleopgave, skal jeg lave en hjemmeside, hvor man man oprette sig som bruger. Der er flere forskelllige brugertyper med hver deres felter.
Da der dog er flere sammenfald har jeg oprettet en base class og herunder en række subclasser der repræsenterer de forskellige typer.

Disse oplysninger skal gemmes og kunne vedligeholdes af brugerne. Problemet er, at oplysningerne skal gemmes i en fil. Det kan jeg ikke lige se hvordan det skal gøres. Jeg ville jo gerne have nogle methoder i baseclassen, der kan tage sig af dette, og så nedarves i subclasses. Jeg tænker CRUD, Create, read, update og delete.
Men hvordan gemmer jeg objekterne i en fil, og hvordan søger jeg filen igennem for at finde en bruger, eller liste dem.

Er der nogen der kan give nogle gode eksempler.

På forhånd tak for hjælpen.
Avatar billede arne_v Ekspert
28. november 2012 - 21:57 #1
Umiddelbart lyder database fremfor fil attraktivt, men skal det vaere fil, saa kig paa XML serialisering.
Avatar billede arne_v Ekspert
29. november 2012 - 01:19 #2
Eksempel paa XML serialisering:

            XmlSerializer ser = new XmlSerializer(typeof(Data));
            StreamWriter sw = new StreamWriter(@"C:\data.xml");
            ser.Serialize(sw, o);
            sw.Close();
            StreamReader sr = new StreamReader(@"C:\data.xml");
            Data ox = (Data)ser.Deserialize(sr);
            sr.Close();
Avatar billede micker Praktikant
30. november 2012 - 23:14 #3
Hej Arne

Ja, det har jeg også kigget på, men hvordan skriver jeg mere end en bruger i XML-filen.

Hver gang jeg skriver, ned i filen med denne kode, overskrives det der stod i forvejen. Jeg ville jo gerne kunne tilfølje og fjerne Brugere i filen
Avatar billede arne_v Ekspert
30. november 2012 - 23:54 #4
Saa serialiserer du en List<Bruger> i.s.f. Bruger.
Avatar billede arne_v Ekspert
01. december 2012 - 00:50 #5
Eksempel fra lageret:

using System;
using System.Collections.Generic;
using System.Xml.Serialization;

namespace E
{
    public class Investment
    {
    }
    public class Stock : Investment
    {
    }
    public class Program
    {
        public static void Main(string[] args)
        {
            List<Investment> lst = new List<Investment>();
            lst.Add(new Stock());
            lst.Add(new Stock());
            try
            {
                XmlSerializer ser = new XmlSerializer(typeof(List<Investment>));
                ser.Serialize(Console.Out, lst);
            }
            catch(InvalidOperationException)
            {
                Console.WriteLine("Expected exception");
            }
            XmlSerializer ser2 = new XmlSerializer(typeof(List<Investment>), new Type[] { typeof(Stock) });
            ser2.Serialize(Console.Out, lst);
        }
    }
}
Avatar billede micker Praktikant
01. december 2012 - 15:14 #6
Super, det var lige det jeg skulle bruge.. Smider du lige et svar?
Avatar billede arne_v Ekspert
01. december 2012 - 15:57 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester