webForumDet fria alternativet
Logga in / Bli medlem

problem med isnull()

ASP

8 svar · 315 visningar · startad av logic

Medlem sedan maj 200481 inlägg
Trådstart#1

Hej! Jag börjar bli klar med forumet, men nu återstår lite irriterande buggtestning och säkring av inmatningar.

Det mest irriterande problemet just nu är detta:

När jag hämtar ett rs och ska skriva ut datat, kollar jag om kolumnen är tom och är den det, hoppar jag över det.

Men det fungerar inte prickfritt, ibland fungerar det och ibland inte!
Koden jag använder är:

if not isnull(rs("signatur")) then
response.write "<hr size=1>"
response.write replace(server.htmlencode(rs("signatur")),vbCrLf,"<br />")
end if

Nån aning om vad som blev galet? Nåt förslag på hur man skulle kunna formulera om frågan så den fungerar bättre?

Tack på förhand!

Medlem sedan sep. 20026 425 inlägg
#2

Testa

if len(rs("signatur"))>0 then
&nbsp;&nbsp;&nbsp;response.write "<hr size=""1"">"
&nbsp;&nbsp;&nbsp;response.write replace(server.htmlencode(rs("signatur")),vbCrLf,"<br />")
end if
Medlem sedan maj 200481 inlägg
#3

Det fungerade utmärkt.

Men varför fungerar inte min kod?

Medlem sedan maj 200010 687 inlägg
#4

Den fungerar när det är null i databasen, men inte om det är en tom sträng i databasen.
m_soderlund's kod fungerar dock inte om strängen är null. För att klara av båda fallen så får man skriva:

if len(rs("signatur") & "") then
   response.write "<hr size=""1"">"
   response.write replace(server.htmlencode(rs("signatur")),vbCrLf,"<br />")
end if
Medlem sedan sep. 20026 425 inlägg
#5

I din kod kollar du om ett värde är sant eller falskt. I min kod kollar jag om värdet är större än 0.

devGuru:
- IsNull
- Len

Medlem sedan juni 200032 967 inlägg
#6

På vilket sätt fungerar det inte ibland?

- - - -

Eftersom len(null) är null, och ingen siffra, hade jag inte vågat mig på if-satsen i martins inlägg. Jag hade kanske istället gjort så här:

sSig = "" & rs("signatur")
if len(sSig) > 0 then
   response.write "<hr size=""1"">"
   response.write replace(server.htmlencode(sSig),vbCrLf,"<br />")
end if

"" & tar hand om null.

mvh

Medlem sedan mars 20032 667 inlägg
#7

I så fall bör man även använda sig av en trim() på rs("signatur"). Är signatur " ", dvs ett blanksteg blir villkoret i if-satsen sant.

Medlem sedan juni 200032 967 inlägg
#8

Mja, om man nu lagrar poster som består av bara mellanslag så är det så klart en bra idé!

Medlem sedan mars 20032 667 inlägg
#9

@nders skrev:

Mja, om man nu lagrar poster som består av bara mellanslag så är det så klart en bra idé!

Om så är fallet förtäljer inte historien. ;)

377 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
122 ms — deklarationer (db)
123 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)