17. februar 2005 - 19:53
Der er
14 kommentarer og 1 løsning
opdater en database fra en form i en asp
jeg har et lille problem når jeg vil opdater data fra en form så opdater den forkert den går ind i mdb filen og opdater det første recordset og ikke den rigtige koden jeg bruger ser således ud <%@LANGUAGE="VBSCRIPT"%> <!--#include file="ConnDB.asp"--> <HTML> <HEAD> <link rel="stylesheet" href="DBNet.css" type="text/css"> </HEAD> <BODY> <% dim objRS, strSQL strSQL = "SELECT * FROM Kontaktpersoner" set objRS = server.CreateObject("ADODB.RecordSet") objRS.Open strSQL, objConn,1,2 objRS.Update objRS("Titel") = Request.Form("iTitel") objRS("Fornavn") = Request.Form("iFornavn") objRS("Efternavn") = Request.Form("iEfternavn") objRS("Initialer") = Request.Form("iInitialer") objRS("Stilling") = Request.Form("iStilling") objRS("Telefonarbejde") = Request.Form("iTelefonarbejde") objRS("Mobiltelefon") = Request.Form("iMobiltelefon") objRS("Faxarbejde") = Request.Form("iFaxarbejde") objRS("Gadearbejde") = Request.Form("iGadearbejde") objRS("Postnummerarbejde") = Request.Form("iPostnummerarbejde") objRS("Byarbejde") = Request.Form("iByarbejde") objRS("Emailadresse") = Request.Form("iEmailadresse") objRS("Email2adresse") = Request.Form("iEmail2adresse") objRS("Webside") = Request.Form("iWebside") objRS("Telefonprivat") = Request.Form("iTelefonprivat") objRS("Telefon2privat") = Request.Form("iTelefon2privat") objRS("Gadeprivat") = Request.Form("iGadeprivat") objRS("Postnummerprivat") = Request.Form("iPostnummerprivat") objRS("Byprivat") = Request.Form("iByprivat") objRS("Email3adresse") = Request.Form("iEmail3adresse") objRS("Notater") = Request.Form("iNotater") objRS.Update Response.Redirect ("default.asp") %> </BODY> </HTML> <% objRS.Close() Set objRS = Nothing %> hvad kan det skyldes????
Annonceindlæg fra IFS Danmark A/S
17. februar 2005 - 20:00
#1
Skal du ikke specificere ID for den record du gerne vil opdatere, f.eks.: strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = " & Request.Form("ID") (under antagelse af at du så har et f.eks. skjult felt på formularen navngivet ID, som indeholder det ID du er igang med at opdatere). Desuden skal du nok undlade at kalde objRS.Update inden du har sat feltværdierne.
17. februar 2005 - 20:06
#2
Formen se således ud <%@LANGUAGE="VBSCRIPT"%> <%option explicit%> <!--#include file="ConnDB.asp"--> <HTML> <HEAD> <link rel="stylesheet" href="DBNet.css" type="text/css"> </HEAD> <BODY> <div align="center"> <% dim objRS, strSQL strSQL = "SELECT * FROM Kontaktpersoner WHERE ID= " & Request.Form("RB") set objRS = server.CreateObject("ADODB.RecordSet") objRS.Open strSQL, objConn,1,2 %> <br> <form method=post action="save2.asp"> <table width="293" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2" bgcolor="#AAC0C6"><strong>Navn</strong></td> <td width="137" bgcolor="#AAC0C6"><input type="hidden" name="hiddenField" value="<%=objRS("ID")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#AAC0C6">Titel:</td> <td bgcolor="#AAC0C6"><input type="text" name="iTitel" value="<%=objRS("Titel")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Fornavn:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iFornavn" value="<%=objRS("Fornavn")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Efternavn:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iEfternavn" value="<%=objRS("Efternavn")%>"> </td> </tr> <tr> <td colspan="2" bgcolor="#83A4AB"><strong>Work</strong></td> <td width="137" bgcolor="#83A4AB"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Workphone:</td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iTelefonarbejde" value="<%=objRS("Telefonarbejde")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Work Cell: </td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iMobiltelefon" value="<%=objRS("Mobiltelefon")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Work Fax:</td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iFaxarbejde" value="<%=objRS("Faxarbejde")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">Work E-mail:</td> <td bgcolor="#83A4AB"><input type="text" name="iEmailadresse" value="<%=objRS("Emailadresse")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">Work E-mail2: </td> <td bgcolor="#83A4AB"><input type="text" name="iEmail2adresse" value="<%=objRS("Email2adresse")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">WWW:</td> <td bgcolor="#83A4AB"><input type="text" name="iWebside" value="<%=objRS("Webside")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB"> </td> <td width="137" bgcolor="#83A4AB"> </td> </tr> <tr> <td colspan="2" bgcolor="#AAC0C6"><strong>Privat</strong></td> <td width="137" bgcolor="#AAC0C6"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Privat Telefon:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iTelefonprivat" value="<%=objRS("Telefonprivat")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Privat Cell:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iTelefon2privat" value="<%=objRS("Telefon2privat")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#AAC0C6">Privat E-mail: </td> <td bgcolor="#AAC0C6"><input type="text" name="iEmail3adresse" value="<%=objRS("Email3adresse")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6"> </td> <td width="137" bgcolor="#AAC0C6"> </td> </tr> <tr bgcolor="#84A6AD"> <td colspan="3"><hr size="1"></td> </tr> <tr bgcolor="#ADC3C6"> <td valign="top"><strong>Notater:</strong></td> <td colspan="2"><input name="iNotater" type="text" value="" size="45%"></td> </tr> <tr bgcolor="#ADC3C6"> <td> </td> <td> </td> <td> </td> </tr> <tr> <td width="69"> </td> <td width="87"> </td> <td width="137"> </td> </tr> <tr> <td width="69"> <input type="reset" name="Clear" value="Clear"> </td> <td width="87"> </td> <td width="137" align="right"><input type="submit" name="add" value="Update" title="Lägg till ny kontakt"> </td> </tr> </table> </form> <br> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="80" bgcolor="#84A6AD"><a href="del.asp">Delete</a></td> <td width="94"> </td> <td colspan="2" bgcolor="#84A6AD"> <div align="center"><a href="default.asp">Index</a></div> </td> <td width="85"> </td> <td width="113" bgcolor="#84A6AD"> <div align="right"><a href="new.asp">New Contact</a></div> </td> </tr> </table> </div> </BODY> </HTML>
17. februar 2005 - 20:11
#3
Hmmm... så skal dit SQL vist se sådan ud (ikke helt sikker, men du kan nok gennemskue hvilke felter der indeholder hvad i din form): strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = " & Request.Form("hiddenField")
17. februar 2005 - 20:11
#4
Som softspot skriver, skal du angive hvilken post der skal opdateres. Og en anden ting... alt hvad der står efter "Response.Redirect (...)" er overflødigt.. dvs, du skal lukke forbindelserne inden "Response.Redirect (...)"..
17. februar 2005 - 20:15
#5
prøver det lige
17. februar 2005 - 20:16
#6
det giver en fejl Fejltype: Microsoft JET Database Engine (0x80040E14) Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =". /jh/save2.asp, line 22
17. februar 2005 - 20:18
#7
hvilken type er ID? Hvis det er en text skal SQL'en se lidt anderledes ud: strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = '" & Request.Form("hiddenField") & "'"
17. februar 2005 - 20:19
#8
id er et tal, så man skal bruge CInt(..) Men det virker som om, at der ikke er noget i Request.Form("hiddenField")
17. februar 2005 - 20:21
#9
Hmmm... men det er den jo ikke, for din formkode henter data fra samme tabel og der er ID ikke en text... :) Kan du ikke lige prøve at vise den kode du er kommet frem til i update-rutinen?
17. februar 2005 - 20:22
#10
ID er et tal i mdb filen som er sat til autonum
17. februar 2005 - 20:23
#11
input felter er af typen tekst ID (i en database) er af tal Derfor skal man bruge ".. where ID = " & CInt(request.form("hiddenField"))
17. februar 2005 - 20:24
#12
nu virker det såå softspot kom med et svar
17. februar 2005 - 20:26
#13
Der! :) Hvad var løsningen?
17. februar 2005 - 20:28
#14
'Update filen <%@LANGUAGE="VBSCRIPT"%> <!--#include file="ConnDB.asp"--> <HTML> <HEAD> <link rel="stylesheet" href="DBNet.css" type="text/css"> </HEAD> <BODY> <% dim objRS, strSQL strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = " & Request.Form("hiddenField") 'strSQL = "SELECT * FROM Kontaktpersoner" set objRS = server.CreateObject("ADODB.RecordSet") objRS.Open strSQL, objConn,1,2 objRS.Update objRS("Titel") = Request.Form("iTitel") objRS("Fornavn") = Request.Form("iFornavn") objRS("Efternavn") = Request.Form("iEfternavn") objRS("Initialer") = Request.Form("iInitialer") objRS("Stilling") = Request.Form("iStilling") objRS("Telefonarbejde") = Request.Form("iTelefonarbejde") objRS("Mobiltelefon") = Request.Form("iMobiltelefon") objRS("Faxarbejde") = Request.Form("iFaxarbejde") objRS("Gadearbejde") = Request.Form("iGadearbejde") objRS("Postnummerarbejde") = Request.Form("iPostnummerarbejde") objRS("Byarbejde") = Request.Form("iByarbejde") objRS("Emailadresse") = Request.Form("iEmailadresse") objRS("Email2adresse") = Request.Form("iEmail2adresse") objRS("Webside") = Request.Form("iWebside") objRS("Telefonprivat") = Request.Form("iTelefonprivat") objRS("Telefon2privat") = Request.Form("iTelefon2privat") objRS("Gadeprivat") = Request.Form("iGadeprivat") objRS("Postnummerprivat") = Request.Form("iPostnummerprivat") objRS("Byprivat") = Request.Form("iByprivat") objRS("Email3adresse") = Request.Form("iEmail3adresse") objRS("Notater") = Request.Form("iNotater") objRS.Update objRS.Close() Set objRS = Nothing Response.Redirect ("default.asp") %> </BODY> </HTML> 'Form filen <%@LANGUAGE="VBSCRIPT"%> <%option explicit%> <!--#include file="ConnDB.asp"--> <HTML> <HEAD> <link rel="stylesheet" href="DBNet.css" type="text/css"> </HEAD> <BODY> <div align="center"> <% dim objRS, strSQL strSQL = "SELECT * FROM Kontaktpersoner WHERE ID= " & Request.Form("RB") set objRS = server.CreateObject("ADODB.RecordSet") objRS.Open strSQL, objConn,1,2 %> <br> <form method=post action="save2.asp"> <table width="293" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="2" bgcolor="#AAC0C6"><strong>Navn</strong></td> <td width="137" bgcolor="#AAC0C6"><input type="hidden" name="hiddenField" value="<%=objRS("ID")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#AAC0C6">Titel:</td> <td bgcolor="#AAC0C6"><input type="text" name="iTitel" value="<%=objRS("Titel")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Fornavn:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iFornavn" value="<%=objRS("Fornavn")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Efternavn:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iEfternavn" value="<%=objRS("Efternavn")%>"> </td> </tr> <tr> <td colspan="2" bgcolor="#83A4AB"><strong>Work</strong></td> <td width="137" bgcolor="#83A4AB"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Workphone:</td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iTelefonarbejde" value="<%=objRS("Telefonarbejde")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Work Cell: </td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iMobiltelefon" value="<%=objRS("Mobiltelefon")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB">Work Fax:</td> <td width="137" bgcolor="#83A4AB"><input type="text" name="iFaxarbejde" value="<%=objRS("Faxarbejde")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">Work E-mail:</td> <td bgcolor="#83A4AB"><input type="text" name="iEmailadresse" value="<%=objRS("Emailadresse")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">Work E-mail2: </td> <td bgcolor="#83A4AB"><input type="text" name="iEmail2adresse" value="<%=objRS("Email2adresse")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#83A4AB">WWW:</td> <td bgcolor="#83A4AB"><input type="text" name="iWebside" value="<%=objRS("Webside")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#83A4AB"> </td> <td width="137" bgcolor="#83A4AB"> </td> </tr> <tr> <td colspan="2" bgcolor="#AAC0C6"><strong>Privat</strong></td> <td width="137" bgcolor="#AAC0C6"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Privat Telefon:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iTelefonprivat" value="<%=objRS("Telefonprivat")%>"> </td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6">Privat Cell:</td> <td width="137" bgcolor="#AAC0C6"><input type="text" name="iTelefon2privat" value="<%=objRS("Telefon2privat")%>"></td> </tr> <tr> <td> </td> <td bgcolor="#AAC0C6">Privat E-mail: </td> <td bgcolor="#AAC0C6"><input type="text" name="iEmail3adresse" value="<%=objRS("Email3adresse")%>"></td> </tr> <tr> <td width="69"> </td> <td width="87" bgcolor="#AAC0C6"> </td> <td width="137" bgcolor="#AAC0C6"> </td> </tr> <tr bgcolor="#84A6AD"> <td colspan="3"><hr size="1"></td> </tr> <tr bgcolor="#ADC3C6"> <td valign="top"><strong>Notater:</strong></td> <td colspan="2"><input name="iNotater" type="text" value="" size="45%"></td> </tr> <tr bgcolor="#ADC3C6"> <td> </td> <td> </td> <td> </td> </tr> <tr> <td width="69"> </td> <td width="87"> </td> <td width="137"> </td> </tr> <tr> <td width="69"> <input type="reset" name="Clear" value="Clear"> </td> <td width="87"> </td> <td width="137" align="right"><input type="submit" name="add" value="Update" title="Lägg till ny kontakt"> </td> </tr> </table> </form> <br> <table width="500" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="80" bgcolor="#84A6AD"><a href="del.asp">Delete</a></td> <td width="94"> </td> <td colspan="2" bgcolor="#84A6AD"> <div align="center"><a href="default.asp">Index</a></div> </td> <td width="85"> </td> <td width="113" bgcolor="#84A6AD"> <div align="right"><a href="new.asp">New Contact</a></div> </td> </tr> </table> </div> </BODY> </HTML>
17. februar 2005 - 20:34
#15
problemet var i SQL setningen strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = " & Request.Form("hiddenField")
Kurser inden for grundlæggende programmering