Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


UserSettings klass

Postades av 2006-01-26 20:23:30 - Stefan Johansson, i forum vb.net, Tråden har 1 Kommentarer och lästs av 644 personer

Hej!

Mitt allra första inlägg =) Yihaj!

Har ett litet problem jag hoppas ni kan hjälpa mig med. Jag har redan postat samma fråga på 'Extreme Visual Basic Talk', men där är det svårt att få svar, så nu hoppas jag hjälpen finns närmre!

Jag har utvecklat ett program som används för tidsplanering, tidsrapportering och kostnadsuppföljning.
Systemet är i drift sedan juni, och fungerar bra, men nu är en uppdatering på gång.

Hela programmet är skrivet i VB.net med SQL Server 2000 som databashanterare. Antalet användare är ca 30.

Bla bla bla... nu till frågan:

Alla användarinställningar sparas som XML data till ett binärt fält i en tabell som heter 'UserProfile'.
XML datan genereras genom att serialisera ett objekt av en klass som heter 'UserSettings'.

Hittils har jag bara behövt spara enkla data som integers, strings, arraylists och liknande, men allt eftersom programmet växer har det uppkommit ett behov att spara mer "komplex" data.

Användaren ska kunna klicka i rutor för att välja de projekttyper han/hon vill ska vara synliga då han/hon bläddrar mellan de olika avdelningarna som finns.

Ett exempel:

För avdelning x, med DivisionID=1 ska projekttyper med ProjectTypeID=1, ProjectTypeID=6, ProjectTypeID=2 och ProjectTypeID=7 visas.
För avdelning y, med DivisionID=2 ska projekttyper med ProjectTypeID=10 och ProjectTypeID=9 visas.
För avdelning z, med DivisionID=7 ska projekttyper med ProjectTypeID=2, ProjectTypeID=8 och ProjectTypeID=11 visas.

XML datan ska alltså se ut liknande:

<?xml version="1.0" encoding="utf-8"?>
<UserSettings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DivisionProjectType>
<Division ID="1">
<anyType xsi:type="xsd:string">1</anyType>
<anyType xsi:type="xsd:string">6</anyType>
<anyType xsi:type="xsd:string">2</anyType>
<anyType xsi:type="xsd:string">7</anyType>
</Division>
<Division ID="2">
<anyType xsi:type="xsd:string">10</anyType>
<anyType xsi:type="xsd:string">9</anyType>
</Division>
<Division ID="7">
<anyType xsi:type="xsd:string">2</anyType>
<anyType xsi:type="xsd:string">8</anyType>
<anyType xsi:type="xsd:string">11</anyType>
</Division>
</DivisionProjectType>


Som ni säkert märker är jag relativt grön på objektorienterad programmering och serialisering...

Hur bygger jag min klass för att uppnå detta?

/Bästa hälsningar
Stefan


Svara

Sv: UserSettings klass

Postades av 2006-01-28 19:24:34 - Peter Ilis

Hej Stefan!

Så långt det går skulle jag använda databasstruktur för att beskriva information och relationer. Att spara data som blobbar i sql-servern tar ju bort nästan all funktionalitet som en relationsdatabas erbjuder.

Men om vi förutsätter att databasen av någon anledning inte får förändras och det är satt att det ska sparas i ett fält så kan följande sätt fungera:

Antar att xml-dokumentet beskriver _en_ avdelning?

För att beskriva detta i en klass kan du använda collection-typen.

Skapa följande klasser:

*Avdelning - Innehåller avdelningsdata+lista med divisioner+stödfunktioner
*Division - Innehåller divisionsdata+lista med projekttyper
*Projekttyp - Innehåller proekttypdata
*Och eventuellt list-klasser för dessa (ärvda av collectionbase).

Avdelnings-klassen kan innehålla en lista med divisions-objekt. Varje divisionsobjekt innehåller i sin tur sedan en lista med Projekttyper.

När du laddar en avdelning så itererar du igenom datat och skapar objekt efter denna struktur (samt lägger till dessa i listorna).

När du vill spara det till databasen så görs samma sak fast baklänges.

Vet inte om det ger så mycket det här.. Svårt att säga vad du vill ha för svar.. :-)

Det du kan göra är också att dekorera klassen med <serializable>-attributet. Då kan du serialisera hela objektet till text (databas/fil/minne). Hittade en länk:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml01202003.asp

Mvh
Peter


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
529
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies