webForumDet fria alternativet

Right() vill inte fungera i If-sats

ASP

4 svar · 219 visningar · startad av Mika3l

Medlem sedan nov. 20018 492 inlägg
Frågan#1

Har en liten kod som ser ut som följande.

For i1 = 0 to 99
If i1 = Right(rs("f_birthYear"),2) Then
selected1 = " selected=""selected"""
Else
selected1 = ""
End If
If i1 < 10 Then
Response.Write("<option value=""0" & i1 & """" & selected1 & ">0" & i1 & "</option>")
Else
Response.Write("<option value=""" & i1 & """" & selected1 & ">" & i1 & "</option>")
End If
Next

Jag vill att <option>-rutan med värdet som stämmer överens med det som är i databasen ska få en selected="selected" så den hamnar överst, men det vill inte fungera.
Det fungerar bra om jag skriver If i1 = tal Then direkt men inte med det som står nu.
Testade att använda samma kod (Right()) och skriva ut talet (88) och det fungerade bra.
Ingen <option> får något selected-värde.

Någon som har någon susning om vad som kan vara fel? :o

Medlem sedan juni 200032 967 inlägg
#2

Du får ju se till att du jämför med rätt subtyper. Strängen "88" är inte samma sak som talet 88.

If cstr(i1) = Right(rs("f_birthYear"),2) Then
Medlem sedan nov. 20018 492 inlägg
#3

Tack Marsvin! :D

Men omvandlas talen till strängar om man använder t.ex Right()? :q

Medlem sedan juni 200032 967 inlägg
#4

Strängfunktioner kan ta i stort sett vad som helst som input (tyvärr), men returnerar strängar. Så: Kör du right() på ett tal, då får du en sträng tillbaka.

(Om jag inte är helt bakom flötet så bör det rimligen vara så det fungerar i alla fall. ;) )

Medlem sedan nov. 20018 492 inlägg
#5

Ok, det låter ganska troligt faktiskt. ;)

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)