webForumDet fria alternativet

Typblandningsfel i vilkorsutryck

ASP

13 svar · 492 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Nu har jag problem igen.
Enligt felmedelande har jag typblandningsfel i vilkorsutrycket.
Jag står som ett fån....

 sNamn=Request("Namn")
 sEpost=Request("Epost")
 sLogin=Request("Login")
 sPassword=Request("Password")
 sForening=Request("Forening")
 'sAdmin=Request("Admin")
 If LEN(Request("Admin"))>0 Then
 sAdmin=True
 End If

If LEN(Request("Namn"))=0 OR LEN(Request("Epost"))=0 Then
		Response.Redirect "Addcust.asp?ERROR=" &Server.URLEncode("Du måste fylla i all information!")
Else

SQL = "INSERT INTO t_Anvandare(Namn,Epost,Login,Password,Forening,Admin) VALUES('"&sNamn&"', '"&sEpost&"', '" &sLogin& "', '"&sPassword& "', '"&sForening& "', '"&sAdmin& "'" & ")"
Response.Write SQL

'On Error Resume Next
	connection.BeginTrans
	connection.Execute(SQL),intRecEff,128
	Response.Write intRecEff & " post har lagts till.<BR>"

Jag vore väldigt tacksam för all hjälp

Medlem sedan nov. 20017 144 inlägg
#2

Här kommer ett Wildcard:
Har du fel värde tal/text i en databaskolumn eller har du en siffra som skall vara en sträng i din kåd?

MVH Jesper

Medlem sedan mars 20011 880 inlägg
#3

Nej det enda som ev kan vara problem är ev
If LEN(Request("Admin"))>0 Then
sAdmin=True

som är en kryssbox. Det är därför som jag försöker att tilldela ett värde..

Medlem sedan feb. 20012 412 inlägg
#4

Den feta rödmarkerade snutten ser inte helt rätt ut, ta bort. ;)

SQL = "INSERT INTO t_Anvandare(Namn,Epost,Login,Password,Forening,Admin) VALUES('"&sNamn&"', '"&sEpost&"', '" &sLogin& "', '"&sPassword& "', '"&sForening& "', '"&sAdmin& "'[red][b]" & "[/b][/red])"

mvh Jörgen :)

Medlem sedan mars 20011 880 inlägg
#5

Om jag skriver så här:

SQL = "INSERT INTO t_Anvandare(Namn,Epost,Login,Password,Forening,Admin) VALUES('"&sNamn&"', '"&sEpost&"', '" &sLogin& "', '"&sPassword& "', '"&sForening& "', "&sAdmin& ")"

Så får jag följande fel:
[kod]
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i INSERT INTO-uttryck.
/Hemsidor/GlobalaForeningen/Admin/EditForening/Addcust1L.ASP, line 49
[/ko0d]
Vad tror ni? :q

Medlem sedan feb. 20012 412 inlägg
#6

Eftersom admin också är sträng ska du ha '" & sAdmin &"'.

men det är troligtvis något mer fel. Vad får du för utskrift på din response.write SQL?

Medlem sedan mars 20011 880 inlägg
#7

Då är vi tillbaka till början igen med typblandningsfel:

SQL = "INSERT INTO t_Anvandare(Namn,Epost,Login,Password,Forening,Admin) VALUES('"&sNamn&"', '"&sEpost&"', '" &sLogin& "', '"&sPassword& "', '"&sForening& "', '" & sAdmin &"'"& ")"

Vad göra?

Medlem sedan feb. 20012 412 inlägg
#8

Ändra bara det du skall ändra:

Sedan har du kommenterat bort tilldelningen av variabeln sAdmin. Ta bort det '

sNamn=Request("Namn")
 sEpost=Request("Epost")
 sLogin=Request("Login")
 sPassword=Request("Password")
 sForening=Request("Forening")
 [b]'sAdmin=Request("Admin")[/b]
 If LEN(Request("Admin"))>0 Then
 sAdmin=True
 End If

SQL = "INSERT INTO t_Anvandare (Namn,Epost,Login,Password,Forening,Admin) VALUES('"& sNamn &"', '"& sEpost &"', '" & sLogin & "', '"& sPassword & "', '"& sForening & "', '"& sAdmin & "')"
Response.Write SQL

connection.Execute(SQL),,128
Medlem sedan mars 20011 880 inlägg
#9

Nix, det hjälper inte.
Som jag nämde så är sAdmin en kryssbox, och det är ju där som det krångla.

Medlem sedan feb. 20012 412 inlägg
#10

Hur ser din kod ut nu?

Återigen, vad får du för resultat från din response.write SQL

Medlem sedan dec. 200012 464 inlägg
#11
SQL = "INSERT INTO t_Anvandare " & _
" (Namn,Epost,Login,Password,Forening,Admin) " & _
" VALUES('"& sNamn &"', '"& sEpost &"', '" & sLogin & _
"', '"& sPassword & "', '"& sForening & "', "& len(sAdmin) & ")"
Medlem sedan mars 20002 836 inlägg
#12

Om sAdmin är en checkbox så kommer antingen värdet eller ingenting att returneras.
Dvs, du kan inte enbart checka om det finns en längd i sAdmin utan även om det är null

ngt sådant här:

sAdmin = Request("Admin")
If LEN(sAdmin)>0 OR Not IsNull(sAdmin)Then
	sAdmin=True
Else
	sAdmin = False
End If

cya,
PatrikB

Medlem sedan mars 20011 880 inlägg
#13

Tack för hjälpne, men jag tog den lättaste vägen och gjorde om datatypen till text.
Nu fungerar det :e

Medlem sedan nov. 20017 144 inlägg
#14

Citerar mig själv ;)

Har du fel värde tal/text i en databaskolumn

Tänk på att högmod är en av de sju dödssynderna :e

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)