Avatar billede lord-jonas Nybegynder
17. november 2008 - 10:30 Der er 13 kommentarer og
2 løsninger

En lille sød If sætning

Jeg har et lille broblem med min if sætning.
jeg vil sige til den: hvis der er et billede så udskriv det, ellers lad være, så der ikke kommer det der klamme kryds skal den køre en anden sætning.
jeg har prøvet noget ala det her:

If Not Row.Item("fldBillede") Is Nothing Then
                    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
                Else
                    lblMenu.Text &= "<td></td></tr>"
                End If
Avatar billede aaberg Nybegynder
17. november 2008 - 10:40 #1
Jeg tror du skal bruge en Literal control i stedet for en label.

Hvis det ikke er dette som er problemet, kan du da ikke skrive lidt mere om, hvorfor det ikke virke, f.eks. kan du skrive hvilken fejlmeddelelse du får?
Avatar billede lord-jonas Nybegynder
17. november 2008 - 11:28 #2
Det kunne jeg ikke forstille mig skulle være løsningen.

btw.
Den kommer ikke med nogle fejl, den udskriver bare det der kryds alligevel og der hvor jeg har billeder kommer de fint nok.
Avatar billede aaberg Nybegynder
17. november 2008 - 11:46 #3
Ok, så tror jeg din fejl ligger i, at billedet aldrig er NULL. prøv med:

If Not String.IsNullOrEmpty(CStr(Row.Item("fldBillede"))) Then
    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
Else
    lblMenu.Text &= "<td></td></tr>"
End If

Hvis dette ikke virker, da prøv at sætte et breakpoint i koden, for at se om den nogensinde kommer ind i "Else" delen af If-sætningen.
Avatar billede lord-jonas Nybegynder
17. november 2008 - 11:53 #4
Så skriver den System.InvalidCastException: Ændringen fra typen 'DBNull' til typen 'String' er ikke gyldig.
Avatar billede platik Nybegynder
17. november 2008 - 11:55 #5
Hvis du bare kører denne del:

lblMenu.Text &= "<td></td></tr>"

Kommer der så også et kryds?

For at vide om fejlen ligger her:
If Not Row.Item("fldBillede") Is Nothing Then
eller her:
lblMenu.Text &= "<td></td></tr>"
Avatar billede lord-jonas Nybegynder
17. november 2008 - 11:58 #6
Ja jeg får stadig denne fejl:
System.InvalidCastException: Ændringen fra typen 'DBNull' til typen 'String' er ikke gyldig.
Avatar billede lord-jonas Nybegynder
17. november 2008 - 12:02 #7
Ændringen fra typen 'DBNull' til typen 'String' er ikke gyldig.
Avatar billede aaberg Nybegynder
17. november 2008 - 12:08 #8
Doh, det er jo selvfølgelig fordi null i databasen ikke bliver nothing i Asp.net, men DBNull. Prøv:

If Not Row.Item("fldBillede") = DBNull.Value Then
    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
Else
    lblMenu.Text &= "<td></td></tr>"
End If
Avatar billede lord-jonas Nybegynder
17. november 2008 - 12:17 #9
Så får jeg denne fejl :/
BC30452: Operator '=' is not defined for types 'Object' and 'System.DBNull'.
Avatar billede aaberg Nybegynder
17. november 2008 - 12:29 #10
Hmm, Jeg er vandt til C#, der kan man sagtens gøre sådan. Åbenbart en begrænsning i VB.net.

Prøv:
If Not Row.Item("fldBillede") = CType(DBNull.Value, object) Then
    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
Else
    lblMenu.Text &= "<td></td></tr>"
End If

Hvis det ikke virker:

If Not Row.Item("fldBillede").GetType() = DBNull.Value.GetType() Then
    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
Else
    lblMenu.Text &= "<td></td></tr>"
End If
Avatar billede lord-jonas Nybegynder
17. november 2008 - 12:35 #11
Ja.
Jeg kan lave den i asp.
men jeg ikke i .net selvom det ligner lidt hinanden.

men desværre der er ingen af de 2 der virker.
Avatar billede lord-jonas Nybegynder
17. november 2008 - 13:36 #12
If Not Row.Item("fldBillede") Is DBNull.Value Then
                    lblMenu.Text &= "<td><img src='" & Row.Item("fldBillede") & "'></td></tr>"
                Else
                    lblMenu.Text &= "<td></td></tr>"
                End If

så virker det : )
Avatar billede lord-jonas Nybegynder
17. november 2008 - 13:37 #13
Yeah!
Avatar billede aaberg Nybegynder
17. november 2008 - 14:51 #14
Supert at du fik det til at virke. Som sagt er jeg ikke så godt kendt i VB.net, men jeg synes sgu at det er lidt mærkeligt at du skal bruge "Is" i stedet for "=".

Men men, syntaksen er jo forskellig!

Jeg lægger et svar som du kan give lidt point, hvis du føler noget af det jeg skrev hjalp dig.

:-)
Avatar billede arne_v Ekspert
23. november 2008 - 05:17 #15
Jeg vil mene at det korrekte er:

if(!Row.IsNull("fldBillede")) {

og:

If Not Row.IsNull("fldBillede") Then
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