Avatar billede simsen Mester
16. januar 2012 - 15:12 Der er 2 kommentarer og
1 løsning

Brug af int? og combobox.selecetedvalue fungerer ikke sammen

Hej,

Jeg har overtaget det her projekt, og jeg er altså ved at blive forvirret.

Den tidligere programmør bruger rigtig meget int? - det har han også gjort med lister til combobokse - ingen problemer som sådan...altså udover når jeg så forsøger at tildele en selectedvalue ud fra en alm. int - så finder den ikke int værdien (også selvom jeg ved den er der). Den fejler ikke - den sætter bare ikke selectedvalue på.

Altså - når jeg henter liste fra databasen til combobox, så er ValueMember lig med id som jeg kan se er en int?

Når jeg så laver en
minCombox.SelectedValue = 4;
får jeg ingen fejl. men den viser heller ikke 4;

Hvis jeg nu laver en metode SelectedIndexChanged i comboboxen, og vil have selectedvalue ud gør jeg sådan her;

int test = Convert.ToInt32(this.ocbCase.SelectedValue);

Her SKAL jeg have en convert på ellers brokker VS sig og siger, jeg ikke kan konvertere en int? til en int.

Så hvordan konverterer jeg den anden vej - altså fra en int til en int?, så den viser korrekte selectedValue? :-)

Og så lige et forståelsesspørgsmål - det jeg har læst mig frem til på Google, er at int? er sådan at man kan tillade nullable felter - bruges meget ved hentning fra db, hvor man kan tildele int felter til int? i stedet for at spørge på om feltet er nullable. Er det korrekt forstået?
Avatar billede kiksen1987 Novice
16. januar 2012 - 15:26 #1
int? betyder ja, at der kan være null i den.
Jeg ville nok arbejde videre på samme måde og
int? test = this.ocbCase.SelectedValue;

eller
if(this.ocbCase.SelectedValue!=null){
int test = (int)this.ocbCase.SelectedValue;
}
hvis du gerne vil din egen måde
Avatar billede simsen Mester
19. januar 2012 - 08:32 #2
Hej Kiksen

Tak for dit svar. Mit problem ligger dog den anden vej rundt.

ocbCase har fået nogle data fra databasen og der er value sat til at være en int?

Nu har jeg så en int som jeg skal have "tildelt" til selectedValue.

Lige nu er jeg så nødt til at sætte int værdien til int?:

int minIntValue = 4;
int? nyMinIntValue = minIntValue;
ocbCase.SelectedValue = nyMinIntValue;

Ellers finder den som sagt ikke selected value, hvis jeg ikke laver det "stunt".

Jeg håbede så, der ville være en Convert.ToInt? metode af en slags :-)
Avatar billede simsen Mester
23. januar 2012 - 15:51 #3
Lukker denne
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