19. september 2008 - 21:11Der er
4 kommentarer og 1 løsning
Arbejde med med vagtplaner og tid
Hej eksperter...
Indeldningsvist skal det lige nævnes at jeg er super-rookie udi de emner jeg beskriver her. Som nystartet fritidsprogrammør har jeg sat mig for at lave en Windows-applikation som skal bruges til at designe vagtplaner og lave udregninger på vagtplanerne for de enkelte medarbejdere indeholdt heri.
Jeg har oprettet en SQL Server 2005 database til at gemme de informationer som brugeren opretter, og her har jeg så stødt panden imod en mur!
Jeg har designet databasen således, at den indeholder 3 tabels:
1 tabel over medarbejdere (ID, Navn og stilling) 1 tabel over dage i det pågældende regnskabsår (ID, UgenDagensNavn[varchar], Type (varchar) og Dag [DateTime]) 1 tabel over vagter (ID, MedabejderID, DagID, StartTid og SlutTid [begge DateTime] og Type [varchar])
Jeg ønsker at Windows-applikation kan vise dataene i et datagrid efter følgende formel:
Navn Starttid Sluttid Type (af vagt)
Jeg vil gerne have at brugeren, når denne arbejder i datagridet, ikke skal indtaste dato men kun klokkeslæt. Er der en måde at pille datoangivelsen fra DateTime-objekterne i databasen? Vil man så efterfølgende kunne opdatere databasen, med kun tidsangivelsen?
Kan man oprette brugerdefinerede typer i SQL Server 2005, som kun indeholder et tidspunkt? Er der en anden løsning på problemet?
Det nemmeste er vidst og gøre det fra det programmeringssprog du arbejder med. Hvis det er C# så er det super nemt via. DateTime klassen når man skal lege med dato'er.
Kan jeg så stadigvæk repræsentere dataene som et grid? Sådan som jeg har forstået datakommunikationen imellem C# og SQL-serveren er, at man ved hjælp af en DataAdapter opretter forbindelse til en database, hvorefter man filler informationerne i et DataSet som man herefter kan vise i et gridview.
Hvis jeg gerne vil benytte C# prædefinerede klasser, skal jeg så bruge dem på det dataset jeg fylder?
Når jeg så skal opdatere min database igen, er det så overhovedet muligt når informationen i mit gridview ikke er af "ægte" datetime?
Jeg kender ikke så meget til de der indbyggede componenter eftersom jeg arbejder egne udviklede.
Dog ved jeg, at du har en SQL i din DataAdapter. Den select der udtrækker dine rækker skal du lave følgende rettelse i for, at få kun tiden ud på din dato(er).
CONVERT(nvarchar(5), DINDATOKOLONNE, 108)
det vil give dig timer og minutter i din GridView.
at gemme igen må være noget tilsvarende, men du kan evt. se om du kan finde din UPDATE SQL.. man bør kunne lave rettelsen deri.
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.