Hur gör jag om jag har en sträng som jag vet består av siffror, men som får typen string eftersom den har skickats ett par gånger med QueryString, att konverteras till integer igen??? Int() avrundar ett numeriskt värde. Använd i st Val() för att göra en sträng till ett numeriskt värde eller kan du använda någon av de typade funktionerna CInt(), CDbl() o s v om dessa nu finns tillgängliga i ASP... Har för mig att jag hade nåt liknande problem en gång, då körde jag med Trim på värdet från Querysträngen Har du kollat vad variabeln MainID innehåller? Det verkar som om den innehåller något som inte kan kjonverteras till en Integer... För att konvertera något till Integer så använd Jag jämför 2 variabler; MenuVars, som är hämtad direkt ifrån databasen och är av typen Tal, och MainID som från början är räknaren i databasen men som förlorar (tror jag) sina egenskaper eftersom den av olika anledningar skickas runt mellan olika sidor. Vad menar du med "eftersom den av olika anledningar skickas runt mellan olika sidor." MainID = Request.QueryString("ID") *upprepar frågan* Jo, jag har gjort en response.write på den och där får jag upp rätt siffra, det är möjligt att det ligger ett mellanslag efter (av någon konstig anledning), men jag tycker att det borde lösas med trim(), men det verkar inte heller fungera.Konvertera sträng till integer..LÖST
Int(MainID) vill inte funka
får felet :
Körningsfel i Microsoft VBScript (0x800A000D)
Inkompatibla typer: 'MainID'
/DynMenu_Local/menu.asp, line 31Sv: Konvertera sträng till integer..
Sv: Konvertera sträng till integer..
<code>
Int(Trim(Request.Querystring("MainID"))
</code>Sv: Konvertera sträng till integer..
/JohanSv: Konvertera sträng till integer..
<code>
Dim enStrang
enStrang = "34"
ettTal = Cint(enStrang)
</code>
//PutteSv: Konvertera sträng till integer..
Kodsnutten ser ut såhär:
<code>
<%
rs.MoveFirst
do until rs.EOF
MenuVars = rs("fltMenuVars")
Title = rs("fltTitle")
ID = rs("fltID")
if MenuVars = int(Area) then
%>
<%=Title%><br>
<%
elseIf MenuVars = MainID then
%>
<%=Title%><br>
<%
end if
%>
<HR size="1"><br>
<%
rs.MoveNext
loop%>
</code>
Det konstiga är (vilket får mig att undra om det är fel på strängtypen egentligen) att om jag hårdkodar rätt värde för MainID så fungerar det oavsett om jag skriver MenuVars = 11 eller MenuVars = "11". Så det kanske är nått annat..
CInt(), Val() och Trim() funkar iaf inte :(Sv: Konvertera sträng till integer..
Hittar inte nåt kodavsnitt där du beskriver hur/var du får ditt MainID ifrån...Sv: Konvertera sträng till integer..
så ser det ut på denna sidan, och det kanske räcker. Men den är från början hämtad ifrån
ID = rs("fltID")
på samma sida, men jag ids inte förklara hela systemet den går igenom eftersom det är lite komplicerat, och det är på denna sida som problemet uppstår.Sv: Konvertera sträng till integer..
Har du kontrollerat vad MainID innehåller? Felet beror troligtvis på att MainID innehåller något som inte går att konvertera till integer...
/JohanSv: Konvertera sträng till integer..
Har kollat längden på det nu och det verkar som om det stämmer, värdet 11 får len = 2.
Men VarType(MainID) = 8, alltså String subtype
IsNumeric(MainID) = true
*fattar ingenting!*