Hur ser din kod ut?
Måsta man ha med någon fil på sidan för att få cInt att fungera på variabler
jag får felmeddelandet inkopatibla typer när jag använder cInt
16 svar · 295 visningar · startad av Addeladde
Måsta man ha med någon fil på sidan för att få cInt att fungera på variabler
jag får felmeddelandet inkopatibla typer när jag använder cInt
Hur ser din kod ut?
Cint är en helt vanlig funktion i VBScript och således behövs inga axtra filer...
Cint används för att konvertera till datatypen integer, och således måste det du konverterar vara kompatibelt med en int, DVS endast numersika tecken.
För att uveckla vad Vide just sa innebär det att du inte kan köra cInt() på något utav följande strängar
strang = "y1"
strant = "anna"
men följande går bra
strang = "11"
strang = "29849834"
Det du kan göra är följande:
Function noAlph(ByVal sText)
Dim oRegExp
Set oRegExp = New RegExp
oRegExp.Pattern = "\D"
oRegExp.Global = True
oRegExp.Execute(sText)
noAlph = oRegExp.Replace(sText, "")
End Function
strang = noAlph("hejsan11hejdå")
strang kommer då få värdet "11", som du sedan kan köra cInt på..
IF IsNumeric(request("your_age")) = TRUE THEN age = request("your_age") ELSE age = 0
om man vill kan man ju jaga kodmängd också. som eclipse brukar säga, less is more.
IF IsNumeric(request("your_age")) THEN age = request("your_age") ELSE age = 0
jag brukar för enkelhetens skull alltid ditcha = true och byta = false mot ett litet not.
en liten parentes bara.
Jag får samma fel jag också...just nu kör jag med Int istället för Cint men går det att fixa med Cint den här koden?:
fraga = Int(Trim(Request.QueryString("fraga")))
QueryStrings-värdet är bara en vanlig siffra...men icke.
cInt står för ConvertToInteger, alltså att man konverterar en sträng, eller vad det nu är, till en integer. Int gör bara om en double, float eller något till ett heltal, alltså tar bort decimaler från ett redan existerande numeriskt värde.
Har för mig att det var så
Man kan ju köra en:
Response.Write TypeName(Fraga)
och se vad man får....
och med
fraga = Int(Trim(Request.QueryString("fraga")))
så ändrar man väll inte Request.QueryString("fraga") till ett heltal....
då maste man väl använda Cint(Trim(Request.QueryString("fraga")))
edit.asp?ID=21
ID är en sträng, ej int.(?) trim() tar bort mellanslag. CInt konverterar CInt(request"ID") blir talet 21.
Jag måste förtydliga mitt svar ovan lite...
Om man jämför ett värde i en databas med ett värde som man skickar så måste det skickade värdet ha rätt typ. Nu menar jag efter själva sql satsen liksom...
SQL = "SELECT * FROM [agenda]"
set mySQL = Conn.Execute(SQL)
DO UNTIL mySQL.EOF
IF mySQL("x_date") = CDate(request("date")) THEN response.write "happy birthday"
mySQL.MoveNext
LOOP
hajjarru?
Men hur gör jag i mitt fall? Det går inte som ni säger att skriva:
fraga = Cint(trim(Request.QueryString("fraga")))
Det blir sträng-fel då. Varför?
När jag jämför fraga-variabeln med en annan variabel måste ju de ha samma typ men hur?
<% mfraga = 11
fraga = Cint(trim(Request.QueryStrin("fraga")))
if fraga > mfraga Then %>
Fraga är större
<%Else%>Fraga är inte större
<%End If%>
Men detta går inte att använda med Cint (sträng-fel)...hur ska jag göra?
Om du får strängfel skulle jag gissa på att du inte bara har numeriska värden i din QueryString.
icaaq: Läs om mitt inlägg... cInt konverterar icke-tal variabler, strängar/chars/osv, till heltal, medans Int konverterar tal variabler, doubles/float/osv, till heltal.
Min QueryString innehåller bara numreriska värden, typ 1,2,3 etc. Är inte det tillräckligt eller måste jag behandla variabeln med dessa värden innan jag skickar med dom i QueryStringen?
nej, du behöver inte behandla värdena på något sätt innan du slänger med dem i querystringen.
jag vore tacksam om du kunda kasta in hela din url här, typ http://localhost/bla.asp?bla=1&gko=2
bara för säkerhets skull.
Ett exempel...
http://localhost/fil.asp?next=fragor&fraga=3&fragor=ja
Inget fel på den QueryStringen... Det måste vara något fuffens när du hämtar informationen. Hur gör du det?
Något liknande det här?
<%
sNext = Request.QueryString("next")
nFraga = cInt(Request.QueryString("fraga"))
sFragor = Request.QueryString("fragor")
%>