Session login variabele vergelijken met sql-veld

Status
Niet open voor verdere reacties.

leifoet

Gebruiker
Lid geworden
7 okt 2007
Berichten
336
Stel login session("UID") is 10

Test in het programma geeft : 10
Code:
<%response.write session("uid")%>

Deze voorwaarde werkt evenwel niet
Code:
<%if rs("MemberID")=Session("UID") Then%>
     <p style="color: blue; font-weight: bold; background-color: lightgrey;">  
<%end if%>

Beide vergelijkingstermen getest op isnumeric() => True

Als ik manueel deze code invoeg dan krijg ik wel de juiste reactie
Code:
<%session("uid")=10%>

Waar kan de vergelijking/code mogelijks fout gelopen zijn ?
Dank voor tips
 
isnumeric("10") en isnumeric(10) geven beide True omdat beide zijn om te zetten in een getal. Ik begrijp dat je in de database de UID hebt opgeslagen als getal. Ik ben geen asp'er maar probeer dit eens
Code:
<%if rs("MemberID")=CLng(Session("UID")) Then%>
    <p style="color: blue; font-weight: bold; background-color: lightgrey;">  
<%end if%>

==> Als het type getal in de db anders is gebruik dan CInt, CLng, CDbl of CSng

update. Als de UID de waarde Empty heeft gekregen (komt in de praktijk niet veel voor) dan geeft isnumeric() ook True. Het is belangrijk dat je eerst op bijzondere waardes test voordat je de Session waarde accepteert al valide.

If (Not IsEmpty(....))
True als een variabele bestaat

if (Not IsNull(....))
True als een variabele geen ongeldige Null waarde heeft

If (Not (.... Is Nothing))
True als de variabele een bestaand object is (is Session een object?)
 
Laatst bewerkt:
[JS]<%response.write rs("MemberID")%>[/JS] geeft als uitkomst?
 
Oops, code bij #2 aangepast omdat ik denk dat in de db het veld MemberID een getal is (welk type getal?)
 
MemberID is inderdaad een Lange Integer. Dank zij jouw accurate info begrijp ik nu ook waarom ik al te 'lang' met dit probleem heb geworsteld.
Dank Bron voor deze logische en perfect werkende oplossing.
 
Tip. Gebruik TypeName() om het type van een variabele te achterhalen.
Hiermee heb je betere informatie bij het debuggen.

response.write(TypeName(variabele))
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan