---
title: "Varför funkar inte detta?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/127186-varför-funkar-inte-detta"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Meng"
published: "2005-04-27T05:41:36.000Z"
updated: "2005-04-27T06:53:18.000Z"
replies: 7
views: 330
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/127186-varför-funkar-inte-detta"
---

# Varför funkar inte detta?

## #1 — Meng, 2005-04-27T05:41Z

Ända sen jag bytte från textfält i databasen till tal fält så har jag fått en massa problem som jag inte kan förstå varför de inte fungerar..

T ex: Varför funkar inte detta?

```
If RecSet("gruppevalg") = RS("id") AND RecSet("gruppevalg") = Request.QueryString("visaid") Then
```

gruppevalg = 39
id                = 39
visaid          = 39

Tar jag bort querystringen så fungerar det.. men den behöver jag ju

Permalänk: https://www.webforum.nu/p/127186

## #2 — ahlen, 2005-04-27T05:58Z

Hej,

om du testar att typa om det till tal då?

Clng(Request.Querystring("visaid")) eller Cint(Request.Querystring("visaid"))

För en Querystring är alltid typad som en sträng eller variant(?)

/m

Permalänk: https://www.webforum.nu/p/1600119

## #3 — yohpops, 2005-04-27T05:59Z

Det kan vara olika datatyper.
39 \<\> "39".

/red försent..  så går det när man skriver med en hand..

Permalänk: https://www.webforum.nu/p/1600120

## #4 — Meng, 2005-04-27T06:08Z

Både Cint och Clng fungerar men jag förstår inte varför, hur ska jag nästa gång kunna se ifall ett värde är "39" eller 39 ?

Tack för hjälpen btw  :birp

Permalänk: https://www.webforum.nu/p/1600124

## #5 — Meng, 2005-04-27T06:17Z

Varför funkar inte detta då? är samma fel eller det finns kanske ett bättre sätt att räkna posterna.. ?

```
<%Set cn = Server.CreateObject("ADODB.Connection")

	Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/afd.mdb")
				set GF = cn.execute("SELECT count(*) as antal FROM filer WHERE gruppevalg = '39'")
					Response.Write GF("antal")
					GF.Close
					Set GF = nothing
	cn.close
Set cn=nothing%>
```

Permalänk: https://www.webforum.nu/p/1600132

## #6 — @nders, 2005-04-27T06:20Z

Du ska ju inte ha apostrofer runt värden om fälttypen är tal.

Permalänk: https://www.webforum.nu/p/1600134

## #7 — Meng, 2005-04-27T06:26Z

Jo jag märkte det. Tack för hjälpen..

Permalänk: https://www.webforum.nu/p/1600139

## #8 — Guffa, 2005-04-27T06:53Z

> **Meng skrev:**
>
> Både Cint och Clng fungerar men jag förstår inte varför, hur ska jag nästa gång kunna se ifall ett värde är "39" eller 39 ?

Du får hålla reda på var värde kommer ifrån. Ett värde ifrån Request.Form eller Request.Querystring är till exempel alltid en sträng.

Att använda prefix på variablerna, och se till att variablerna alltid innehåller den datatyp de ska, är en bra hjälp för att kunna undvika typblandningsfel.

Exempel:

lngVisaId = CLng(Request.Querystring("visaid"))

Detta skyddar även mot en mindre känd form av SQL injections:
<http://www.aspsidan.se/default.asp?page=readArticle&menu=2&aId=334>

Permalänk: https://www.webforum.nu/p/1600152

---

Tråden på webben: https://www.webforum.nu/amne/asp/127186-varför-funkar-inte-detta
