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 · 497 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?
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
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