24. august 2004 - 14:21
Der er
11 kommentarer og 1 løsning
Opdater indhold
Hey all. Jeg skal opdatere noget brugerinfo, i forbindelse med et community jeg roder med. Brugeren har en session("id") med sig. <% Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("data/databasen.mdb") Set rs = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM user where id='"&session("id")&"'" rs.Open SQL, Connect, 3, 3 if request.QueryString("action")="update" then rs("password") = request.form("password") rs("signature")=request.form("signature") rs.update response.Redirect "index.asp" end if %> <form name="edit" method="post" action="edit.asp?action=update"> <br> <%=rs("username")%><br> <br> Password:<br> <input type="text" name="password" value="<%=rs("password")%>"><br> Signatur:<br> <input type="text" name="signature" value="<%=rs("signature")%>"> <br><br> <input type="submit" name="Submit" value="Update"> </form> -- Det eneste jeg får er denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. edit.asp, 14 (line rs.Open SQL, Connect, 3, 3) Jeg kan ikke finde fejlen. Plz hjælp :)
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
24. august 2004 - 14:30
#1
Paste linie 14? Men ellers kommer den fejl normalt hvis du fx. prøver at sætte tekst ind i et tal felt, eller hvis du mangler ping ( ' ) rundt om tekst input
24. august 2004 - 14:39
#2
Har pasted linien edit.asp, 14 (line rs.Open SQL, Connect, 3, 3) - Jeg er åben for muligheder hvis der er nemmere eller andre måder at opdatere de felter på..
24. august 2004 - 14:43
#3
Skal bruge linien lige over den så, linie 13 tak :) Altså, jeg opdatere altid sådan her (den gode gamle måde ;) StrSQL = "UPDATE Tabel SET FELT = 'VÆRDI'" objconn.execute(StrSQL)
24. august 2004 - 14:45
#4
Prøv sådan: SQL = "SELECT * FROM user where id="&session("id") id er sikkert et tal, hvorfor der ikke skal ' omkring.
24. august 2004 - 14:48
#5
Det er ikke i udtræk den melder fejl, men i indsættelse fennec..
24. august 2004 - 14:49
#6
Desuden, melder den ikke fejl hvis der er ping om tal :) Det eneste område hvor den er specielt sensitiv over ' om tal, er ved sammenligning og sammenlægninger
24. august 2004 - 15:00
#7
fennec's løsning virkede.. Men tak for hjælpen ellers locturian.. fennec svar for point :)
24. august 2004 - 15:02
#8
goddammit - det var da utroligt... nå, der overså man lige noget... :)
24. august 2004 - 15:03
#9
locturian >> Prøv lige at tjekke hvordan der bliver indsat. Det er den gode gamle "select resultat" også updatere (jeg ville også hellere bruge "update ....") linje 14 er "rs.Open SQL, Connect, 3, 3" Altså gik jeg ud fra at det er "select" sætningen der er problemet.
24. august 2004 - 15:06
#10
Ja, rigtigt, mig der var lidt hurtig på aftrækkeren... sorry
24. august 2004 - 15:09
#11
... Nu vi er inde på det, så vil jeg, lige som locturian, anbefale at du bruger den "rigtige" update metode. Du sparer mange resursekrafter på den måde, da du kun laver et kald til databasen. Dette burde gøre det samme: <% Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("data/databasen.mdb") if request.QueryString("action")="update" then Connect.execute("update user set password='"& request.form("password") &"', signature='"& request.form("signature") &"'") response.Redirect "index.asp" end if set rs = Connect.execute("SELECT * FROM user where id="&session("id")) %> <form name="edit" method="post" action="edit.asp?action=update"> <br> <%=rs("username")%><br> <br> Password:<br> <input type="text" name="password" value="<%=rs("password")%>"><br> Signatur:<br> <input type="text" name="signature" value="<%=rs("signature")%>"> <br><br> <input type="submit" name="Submit" value="Update"> </form>
24. august 2004 - 15:10
#12
Connect.execute("update user set password='"& request.form("password") &"', signature='"& request.form("signature") &"'") Der var lige kommet et linjeskift ind hvor det ikke skulle være :o)
Kurser inden for grundlæggende programmering