Avatar billede sune56 Nybegynder
19. september 2008 - 21:11 Der 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?

Venlig hilsen Sune
Avatar billede kalp Novice
19. september 2008 - 21:31 #1
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.
Avatar billede sune56 Nybegynder
19. september 2008 - 21:44 #2
Det er C# jeg arbejder i...

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?

Venlig hilsen Sune
Avatar billede kalp Novice
20. september 2008 - 00:25 #3
Hej igen,

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.
Avatar billede sune56 Nybegynder
21. september 2008 - 00:14 #4
Fantastisk... Lige hvad jeg havde brug for...

Send et svar og jeg sender point...
Avatar billede kalp Novice
21. september 2008 - 05:31 #5
=)
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
Kategori
Computerworld tilbyder specialiserede kurser i database-management

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