---
title: "inkompatibla typer cInt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/145180-inkompatibla-typer-cint"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2006-04-07T08:45:31.000Z"
updated: "2006-04-07T10:18:13.000Z"
replies: 9
views: 508
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/145180-inkompatibla-typer-cint"
---

# inkompatibla typer cInt

## #1 — devotion, 2006-04-07T08:45Z

Hmmm..... Hej!

Varför fungerar:

```
<% if Request.form("supplier") = objRS("supplierId") then response.write "selected" %>
```

men inte:

```
<% if cInt(Request.form("supplier")) = cInt(objRS("supplierId")) then response.write "selected" %>
```

Som ger felmeddelandet:

```
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'cInt'
/uppdragNu/addEnumber.asp, line 97
```

supplierId är lagrat som tal databasen och Request.form("supplier") kommer från formuläret...

Mvh
Henrik

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

## #2 — The_Hulk, 2006-04-07T09:26Z

Måste du inte ha dubbla likhetstecken?
i första exemplet 

```
Request.form("supplier") = objRS("supplierId")
```

tilldelar du nog **Request.form("supplier")** värdet från **objRS("supplierId")**
vilket alltid kommer att bli sant
medans i andra exemplet 

```
cInt(Request.form("supplier")) = cInt(objRS("supplierId"))
```

försöker du till delar värdet av **cInt(Request.form("supplier"))** värdet från **cInt(objRS("supplierId"))**.
Kan inte garantera att det är så i ASP men i de flesta andra språken har det den betydelsen.
testa med 

```
<% if cInt(Request.form("supplier")) =[b]=[/b] cInt(objRS("supplierId")) then response.write "selected" %>
```

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

## #3 — devotion, 2006-04-07T09:29Z

Hmmm...

Tror jag kommit på felet...

När jag inte har valt en leverantör i listan så är ju request.form("supplier") = "" Då blir det ju givetvis fel att använda cInt...

Ska försöka hitta ett sätt att hantera när request.Form("supplier") =""

Hur skulle man kunna hantera det???

Mvh
henrik

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

## #4 — The_Hulk, 2006-04-07T09:33Z

där är det ju bara att skriva 

```
<% if Request.form("supplier") != '' && cInt(Request.form("supplier")) = cInt(objRS("supplierId")) then response.write "selected" %>
```

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

## #5 — Erik Juhlin, 2006-04-07T09:36Z

The Hulk: VBScripts syntax ser inte ut så. Dessutom så skulle det inte funka även om man skriver rätt syntax eftersom att i VBScripts så körs alla villkor. Den hoppar alltså inte ur när första villkoret är falskt.

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

## #6 — @nders, 2006-04-07T09:36Z

The Hulk, förvirra inte folk.

I ASP (VBScript / VB-besläktade språk) används inte ==, !=, && och \|\|.
Här används NOT, AND och OR, samt både tilldelning och jämförelser görs med ett likhetstecken.

> Ska försöka hitta ett sätt att hantera när request.Form("supplier") =""
> 
> 
> Hur skulle man kunna hantera det???

Antingen sätter du ett ogiltigt siffervärde (typ -1) i din \<select\>, eller så gör du en if-sats på serversidan;

```
if isnumeric(request.form("supplier") then
     ' weeee
end if
```

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

## #7 — devotion, 2006-04-07T09:40Z

Självklart!

Ska testa!

Tack så länge!

mvh

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

## #8 — devotion, 2006-04-07T09:44Z

tänk vad ett:

```
-1
```

kan göra!

Gjorde så här:

```
				  <select name="supplier" class="listMenu" id="supplier" onChange="if (this.selectedIndex > 0) this.form.submit();">
					<option value="[b]-1[/b]" selected="selected">--V&auml;lj leverant&ouml;r--</option>
					<% Do until ObjRS.EOF %>
					<option value="<% =objRS("supplierId")%>"<% if cInt(request.Form("supplier")) = cint(objRS("supplierId")) then response.write "selected" %>><% =objRS("supplierName")%></option> 
					<% objRS.Movenext %>
					<% Loop %>
				  </select>
```

istället för:

```
				  <select name="supplier" class="listMenu" id="supplier" onChange="if (this.selectedIndex > 0) this.form.submit();">
					<option value="" selected="selected">--V&auml;lj leverant&ouml;r--</option>
					<% Do until ObjRS.EOF %>
					<option value="<% =objRS("supplierId")%>"<% if cInt(request.Form("supplier")) = cint(objRS("supplierId")) then response.write "selected" %>><% =objRS("supplierName")%></option> 
					<% objRS.Movenext %>
					<% Loop %>
				  </select>
```

och det funkade fint...

Är det det bästa sättet, eller ska man lösa det med en if-sats?

Mvh
Henrik

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

## #9 — @nders, 2006-04-07T09:47Z

Well, det är nog hugget som stucket, men jag gillar enkla lösningar, och hade nog valt -1-varianten också. Enkelt och grejt. :)

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

## #10 — devotion, 2006-04-07T10:18Z

dåså!

//Henrik

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/145180-inkompatibla-typer-cint
