Avatar billede krestionsen Nybegynder
24. juli 2004 - 10:25 Der er 7 kommentarer og
1 løsning

trække en værdi ud af databasen og sætte værdi til en listbox

Jeg har en tid værdi i min database der ser sådan her ud "10:00" og det er ikke noget problem at trække den ud, men så er det, at jeg har 2 listboxe, hvor den ene listbox skal sættes til 10 og den anden til 00, skal man trække dataene ud af databasen på en speciel måde, når dataene lige som skal skille af og hvordan sætter man listboxene lig med tallene?

Det skal lige siges at der står tal i mine listboxe og f.eks. værdien 10, skal sættes til at være valgt i den ene og 00 skal sætte til at være valgt i den anden.
Avatar billede snepnet Nybegynder
24. juli 2004 - 12:08 #1
Hej krestionsen :o)

Det er ikke så kompliceret at få den slags til at fungere fornuftigt, og du kan godt pakke det ind i en rimelig elegant og også rimelig general løsning.

Jeg synes ikke er er nogen grund til at du spolerer din datamodel ved at lagre tidsparametre hver for sig... Du kan sagtens fikse det uden.

Jeg har selv tidligere brugt en model hvor jeg laver en kontrol, som holder styr på de 2 dropdown bokse.
Denne kontrol sørger for at tage den værdi boksene skal vise (tilsammen), og splittte den op i forbindelse med databinding.

Når resultatet så skal gemmes - sørger kontrollen så for at samle data ind fra de 2 bokse, og konvertere det til en værdi du kan smide ind i dit dataset igen (hvis det er sådan et du bruger).

Er det forståeligt, og er det noget du kunne tænke dig at se et eksempel på ?
Avatar billede tomjelen Nybegynder
24. juli 2004 - 12:20 #2
Jeg regner med at du har din tid gemt i et eller andet dato format der kan konverteres til en DateTime, ellers kan du vel bare bruge string.split ved kolonnet.

Et lille eksemple på hvordan jeg nok ville gøre det, variablen tid vil så være dit database udtræk i din situation.

DateTime tid = DateTime.Now;
int timer = tid.Hour;
int mins = tid.Minute;

int index = listboxTimer.Items.FindByValue(timer.ToString());
listboxTimer.SelectedIndex = index;

index = listboxMins.Items.FindByValue(mins.ToString());
listboxMins.SelectedIndex = index;
Avatar billede tomjelen Nybegynder
24. juli 2004 - 12:28 #3
Kan ske det skal være FindByText i dit tilfælde, kommer lidt an på hvordan du har fyldt ind i din listbox.
Avatar billede tomjelen Nybegynder
24. juli 2004 - 12:34 #4
oops, eksemplet skulle have været:

DateTime tid = DateTime.Now;
int timer = tid.Hour;
int mins = tid.Minute;

int index = listboxTimer.Items.IndexOf(listboxTimer.Items.FindByValue(timer.ToString()));
listboxTimer.SelectedIndex = index;

index = listboxTimer.Items.IndexOf(listboxMins.Items.FindByValue(mins.ToString()));
listboxMins.SelectedIndex = index;
Avatar billede krestionsen Nybegynder
24. juli 2004 - 18:06 #5
Jeg har gemt tiden som en string og har brugt string.split og har gjort lige som du sagde med listboxene, men sammen med tid har jeg en dato, som jeg har fået med ud sammen med tiden, men hvordan sætter jeg Calendar1 lig med den dato, som jeg har fået ud?
Avatar billede tomjelen Nybegynder
24. juli 2004 - 19:51 #6
Jeg har aldrig brugt calendar controllen før, som jeg går ud fra er typen "Calendar1" er. Men jeg kan se at den har en property der hedder SelectedDate, som tager en DateTime.

Så hvis du også har din dato som en string må det vel være noget i retning af:

DateTime date = Convert.ToDateTime("22-07-2004");
Calendar1.SelectedDate = date;
Avatar billede krestionsen Nybegynder
24. juli 2004 - 19:58 #7
Ok, hvis du lige lægger et svar, så er pointene dine.
Avatar billede tomjelen Nybegynder
24. juli 2004 - 19:59 #8
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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