/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
En IF-sætning med to variabler ?
Fra : Dennis Møller


Dato : 08-01-04 09:55

Hejsa!

Jeg er nået til et sted i min programmering, hvor jeg har brug
for en IF-sætning, der indeholder to variabler. Den er 100%
korrekt skrevet, men den virker bare ikke!
Jeg har kigget alt igennem jeg nogensinde har programmeret og
umiddelbart kan jeg ikke finde en IF-sætning med to variabler. Så
var det jeg tænkte... "Kan det overhovedet lade sig gøre?" og
hvis nej; "Hvad i alverden gør jeg så?"... :P

Her er det konkrete eksempel:

<% IF rs2("ID") = Request.Querystring("tilprofil") THEN %>

Querystring'en kommer med et et- eller tocifret tal, f.eks. 17
Jeg har prøvet at skrive:
17
i stedet for:
Request.Querystring("tilprofil")
og det irriterende er at her virker det !

Jaja, udover dette omtalte problem, synes jeg det går fremragende
med mit programmering. Jeg er kommet langt...
Nå, men please hjælp! :D
På forhånd tak.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jesper Stocholm (08-01-2004)
Kommentar
Fra : Jesper Stocholm


Dato : 08-01-04 10:03

Dennis Møller wrote :

> Hejsa!
>
> Jeg er nået til et sted i min programmering, hvor jeg har brug
> for en IF-sætning, der indeholder to variabler. Den er 100%
> korrekt skrevet, men den virker bare ikke!
> Jeg har kigget alt igennem jeg nogensinde har programmeret og
> umiddelbart kan jeg ikke finde en IF-sætning med to variabler. Så
> var det jeg tænkte... "Kan det overhovedet lade sig gøre?" og
> hvis nej; "Hvad i alverden gør jeg så?"... :P
>
> Her er det konkrete eksempel:
>
> <% IF rs2("ID") = Request.Querystring("tilprofil") THEN %>
>
> Querystring'en kommer med et et- eller tocifret tal, f.eks. 17
> Jeg har prøvet at skrive:
> 17
> i stedet for:
> Request.Querystring("tilprofil")
> og det irriterende er at her virker det !
>
> Jaja, udover dette omtalte problem, synes jeg det går fremragende
> med mit programmering. Jeg er kommet langt...

Når du sammenligner Querystring-variable i ASP, så er de som udgangspunkt
at typen "variant". Derfor er det altid en god idé at cast'e dine
variable til den type, som de reelt er - dvs

if rs("id") = CInt(Request.QueryString("tilprofil")) then
   
end if

Grunden til at rs("id") korrekt regnes som et tal er sikkert, at ID i din
database er defineret som et tal.

Husk her altid at lave fejlhåndtering, da CInt() giver en fejl, hvis
variablen er enten den tomme streng, null eller slet ikke et tal.
--
Jesper Stocholm
http://stocholm.dk
Give a man a fish and he will have food for a day,
give a man an elephant, and he will have food for a week.

Jens Gyldenkærne Cla~ (08-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-01-04 11:04

Jesper Stocholm skrev:

> if rs("id") = CInt(Request.QueryString("tilprofil")) then

> Husk her altid at lave fejlhåndtering, da CInt() giver en
> fejl, hvis variablen er enten den tomme streng, null eller
> slet ikke et tal.

Man kan også konvertere den anden vej:

if Cstr(rs("id")) = Request.QueryString("tilprofil") then


- så kommer der ikke fejl hvis querystringvariablen ikke er
numerisk.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Peter Lykkegaard (08-01-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 08-01-04 12:18


"Jens Gyldenkærne Clausen" wrote in a message

> Man kan også konvertere den anden vej:
> if Cstr(rs("id")) = Request.QueryString("tilprofil") then
>
> - så kommer der ikke fejl hvis querystringvariablen ikke er
> numerisk.

Mnjooh, men hvis vi nu antager at feltet "id" kan indeholde null værdier så
ville den drille alligevel
(Ved godt at "id" med stor sandsynlighed aldrig vil indeholde null i dette
tilfælde)

if Cstr(rs("id") & "") = Request.QueryString("tilprofil") then
Eller
if Cstr("0" & rs("id")) = Request.QueryString("tilprofil") then

Hvis rs("id") er null vil Cstr("0" & rs("id")) give værdien "0"

Den giver dog problemer hvis "id" er negativ
Hvis rs("id") er -1 vil Cstr("0" & rs("id")) give værdien "0-1"

- Peter



Jens Gyldenkærne Cla~ (08-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-01-04 12:33

Peter Lykkegaard skrev:

> Mnjooh, men hvis vi nu antager at feltet "id" kan indeholde
> null værdier så ville den drille alligevel

Korrekt.

> (Ved godt at "id" med stor sandsynlighed aldrig vil indeholde
> null i dette tilfælde)

Sådan er det jo ofte med id-felter. Men du har da ret i at metoden
ikke er 100 % sikker (hvad jeg heller ikke angav). Forudsat at
rs("id") refererer til en primærnøgle - formentlig et
autonummerfelt - skulle den dog virke fint.


> if Cstr(rs("id") & "")


Vil det virke efter hensigten? Jeg vil tro at rs("id") & "" giver
en typekonverteringsfejl. Hvis rs("id") & "" virker, er Cstr under
alle omstændigheder overflødig - da sammensætningen af en
talvariabel og en tekstvariabel, så vidt jeg kan se, kun kan give
en tekstvariabel (eller en fejl).

Jeg ville tjekke for null først:

If not isnull(rs("id")) AND Cstr(rs("id")) = Request...

Så vidt jeg husker er vbscript ikke strict mht. AND - det vil sige
at hvis første argument fejler så tjekkes andet argument ikke.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Møller (09-01-2004)
Kommentar
Fra : Dennis Møller


Dato : 09-01-04 10:10

Tak for de meget brugbare svar!
Jespers råd virkede, men for at undgå fejl bruger jeg Jens' råd.

Jeg er allerede tilbage med et nyt og mere avanceret spørgsmål i en
ny tråd... ! :D

- Dennis.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (09-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-01-04 11:07

Dennis Møller skrev:

> Tak for de meget brugbare svar!
> Jespers råd virkede, men for at undgå fejl bruger jeg Jens'
> råd.

Velbekomme. Hvis du vil gøre lidt til gengæld, må du gerne læse min
signatur. Selv om det nogle gange kan være svært at finde et godt
sted at citere er det altid en god ide at citere lidt fra et
tidligere indlæg. På den måde er det lettere for os andre at se
sammenhængen med resten af tråden.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Møller (09-01-2004)
Kommentar
Fra : Dennis Møller


Dato : 09-01-04 11:50

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> Velbekomme. Hvis du vil gøre lidt til gengæld, må du gerne læse min
> signatur. Selv om det nogle gange kan være svært at finde et godt
> sted at citere er det altid en god ide at citere lidt fra et
> tidligere indlæg. På den måde er det lettere for os andre at se
> sammenhængen med resten af tråden.

Det har du ret i og jeg har lagt mærke til at du gør meget ud af at
råde folk til at gøre. Og jeg har taget det til mig og husket det hver
gang jeg skriver herinde (og andre steder, hvor man bruger
citatteknikken), men når jeg bare skrev tak for rådene, synes jeg ikke
at der var grund til at citere, eller skrive det som et svar på nogle
af jeres...
Men det er måske ikke måden?

MVH Dennis

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (09-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-01-04 12:02

Dennis Møller skrev:

> Det har du ret i og jeg har lagt mærke til at du gør meget ud
> af at råde folk til at gøre. Og jeg har taget det til mig og
> husket det hver gang jeg skriver herinde (og andre steder,
> hvor man bruger citatteknikken),

Glimrende.


> men når jeg bare skrev tak for rådene, synes jeg ikke at der
> var grund til at citere, eller skrive det som et svar på nogle
> af jeres...


Jeg kan godt forstå dig - men det er stadig en god ide at citere
lidt. Nogle af os ser kun de indlæg vi ikke allerede har set før -
derfor kan et svar i en tråd stå helt alene i emneoversigten. Hvis
man så har et lille citat at starte med, er det som regel ganske
let at huske hvad tråden handlede om. Men uden noget citat mangler
koblingen til den tidligere tråd.

Hvis man ikke kan finde noget at citere, kan man evt. bare
opsummere.

Det kan fx gøres på denne måde:

********************************************
Jesper Stocholm skrev:

[eksempel på if-sætning]


Tak for svaret - også til Peter og Jens
********************************************

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste