Jag gissar på att IDNR är av heltals- / räknartyp i tabellen. I så fall: inga apostrofer runt.
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") & "' WHERE IDNR=" & Session("UserID")
Mvh,
10 svar · 214 visningar · startad av Sammy
Det är låst sig totalt för mig.. Försöker uppdatera ett innehåll i databasen (adressraden)
Skulle vilja ha hjälp med följande kod:
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") &"' WHERE IDNR='" & Session("UserID") & "' "
Får följande felmeddelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
/spelhus/kontou.asp, line 12
Här är hela koden:
<%
'Skapar koppling till databasen
Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("test.mdb") & ";"
'provar att från databasen hämta en post som stämmer överrens med uppgifterna från formuläret
stm = "SELECT * FROM konto WHERE idnr = " & session("userid") & " "
set RS = Connection.Execute(stm)
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") &"' WHERE IDNR='" & Session("UserID") & "' "
set RS = Connection.Execute(SQL)
RS.close
Connection.Close
Response.Redirect("sida.asp")
%>
Jag gissar på att IDNR är av heltals- / räknartyp i tabellen. I så fall: inga apostrofer runt.
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") & "' WHERE IDNR=" & Session("UserID")
Mvh,
Testade.. nu fick jag meddelandet:
Feltyp:
ADODB.Recordset (0x800A0E78)
Åtgärden är inte tillåten när objektet är stängt.
/spelhus/kontou.asp, line 14
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") & "' WHERE IDNR=" & Session("UserID") &" "
Jag ändrade lite, och markerade lite.
<%
'Skapar koppling till databasen
Set connection = server.createObject("adodb.connection")
connection.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("test.mdb") & ";"
'provar att från databasen hämta en post som stämmer överrens med uppgifterna från formuläret
[b] ' Vad är detta? Du använder aldrig recordsetet[/b]
stm = "SELECT * FROM konto WHERE idnr = " & session("userid") & " "
set RS = Connection.Execute(stm)
[b]' -------------- [/b]
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") &"' WHERE IDNR=" & Session("UserID")
Connection.Execute SQL,,128
Connection.Close
Response.Redirect("sida.asp")
%>
Mvh,
Aha.. ok nu fungerade det prima.. tackar återkommer säkert inom ämnet.. första gången jag använder update ;)
Förresten.. säg att jag också vill uppdatera information i ett formulär där också postnummer och stad finns med.. hur skall SQL raden se ut då?
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") &"', Postnummer = '" & Request.Form("postnummer") & ", Stad = '" & Request.Form("stad") & "' WHERE IDNR=" & Session("UserID")
Jag har utgått ifrån att postnummer och stad är av texttyp i tabellen.
mvh,
Tackar och bugar för din hjälp men nu fick jag meddelandet:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket ''59171, Stad = 'Motalas' WHERE IDNR=1'.
/spelhus/kontou.asp, line 10
Om du läser ordentligt så ser du att jag missat en avslutande apostrof efter postnumret. Så här ska det se ut:
SQL = "UPDATE konto SET ADRESS='"& Request.Form("adress") &"', Postnummer = '" & Request.Form("postnummer") & "', Stad = '" & Request.Form("stad") & "' WHERE IDNR=" & Session("UserID")
Om man har problem med SQL-frågor så ska man skriva ut dem med response.write istället för att exekvera dem, då är det mycket lättare att se vad som är fel.
mvh,
Postnummer = '" & Request.Form("postnummer") & ",
bör väll vara
Postnummer = '" & Request.Form("postnummer") & "'
(en ' alltså)
-Eitraz