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
13 svar · 492 visningar · startad av saw
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
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
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..
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 :)
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
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?
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?
Ä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
Nix, det hjälper inte.
Som jag nämde så är sAdmin en kryssbox, och det är ju där som det krångla.
SQL = "INSERT INTO t_Anvandare " & _
" (Namn,Epost,Login,Password,Forening,Admin) " & _
" VALUES('"& sNamn &"', '"& sEpost &"', '" & sLogin & _
"', '"& sPassword & "', '"& sForening & "', "& len(sAdmin) & ")"
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
Tack för hjälpne, men jag tog den lättaste vägen och gjorde om datatypen till text.
Nu fungerar det :e
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