Avatar billede gamemaster Nybegynder
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????
Avatar billede softspot Forsker
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.
Avatar billede gamemaster Nybegynder
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>&nbsp;</td>
      <td bgcolor="#AAC0C6">Titel:</td>
      <td bgcolor="#AAC0C6"><input type="text" name="iTitel" value="<%=objRS("Titel")%>"></td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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">&nbsp;</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>&nbsp;</td>
      <td bgcolor="#83A4AB">Work E-mail:</td>
      <td bgcolor="#83A4AB"><input type="text" name="iEmailadresse" value="<%=objRS("Emailadresse")%>"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td bgcolor="#83A4AB">Work E-mail2: </td>
      <td bgcolor="#83A4AB"><input type="text" name="iEmail2adresse" value="<%=objRS("Email2adresse")%>"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td bgcolor="#83A4AB">WWW:</td>
      <td bgcolor="#83A4AB"><input type="text" name="iWebside" value="<%=objRS("Webside")%>"></td>
    </tr>
    <tr>
      <td width="69">&nbsp;</td>
      <td width="87" bgcolor="#83A4AB">&nbsp;</td>
      <td width="137" bgcolor="#83A4AB">&nbsp;
      </td>
    </tr>
    <tr>
      <td colspan="2" bgcolor="#AAC0C6"><strong>Privat</strong></td>
      <td width="137" bgcolor="#AAC0C6">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</td>
      <td width="87" bgcolor="#AAC0C6">&nbsp;</td>
      <td width="137" bgcolor="#AAC0C6">&nbsp;
      </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>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</td>
      <td width="87">&nbsp;</td>
      <td width="137">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">
          <input type="reset" name="Clear" value="Clear">
      </td>
      <td width="87">&nbsp;</td>
      <td width="137" align="right"><input type="submit" name="add" value="Update" title="L&auml;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">&nbsp;</td>
      <td colspan="2" bgcolor="#84A6AD">
      <div align="center"><a href="default.asp">Index</a></div>      </td>
      <td width="85">&nbsp;</td>
      <td width="113" bgcolor="#84A6AD">
        <div align="right"><a href="new.asp">New Contact</a></div>      </td>
    </tr>
  </table>
</div>
</BODY>
</HTML>
Avatar billede softspot Forsker
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")
Avatar billede thesurfer Nybegynder
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 (...)"..
Avatar billede gamemaster Nybegynder
17. februar 2005 - 20:15 #5
prøver det lige
Avatar billede gamemaster Nybegynder
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
Avatar billede softspot Forsker
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") & "'"
Avatar billede thesurfer Nybegynder
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")
Avatar billede softspot Forsker
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?
Avatar billede gamemaster Nybegynder
17. februar 2005 - 20:22 #10
ID er et tal i mdb filen som er sat til autonum
Avatar billede thesurfer Nybegynder
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"))
Avatar billede gamemaster Nybegynder
17. februar 2005 - 20:24 #12
nu virker det såå softspot kom med et svar
Avatar billede softspot Forsker
17. februar 2005 - 20:26 #13
Der! :)

Hvad var løsningen?
Avatar billede gamemaster Nybegynder
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>&nbsp;</td>
      <td bgcolor="#AAC0C6">Titel:</td>
      <td bgcolor="#AAC0C6"><input type="text" name="iTitel" value="<%=objRS("Titel")%>"></td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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">&nbsp;</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>&nbsp;</td>
      <td bgcolor="#83A4AB">Work E-mail:</td>
      <td bgcolor="#83A4AB"><input type="text" name="iEmailadresse" value="<%=objRS("Emailadresse")%>"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td bgcolor="#83A4AB">Work E-mail2: </td>
      <td bgcolor="#83A4AB"><input type="text" name="iEmail2adresse" value="<%=objRS("Email2adresse")%>"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td bgcolor="#83A4AB">WWW:</td>
      <td bgcolor="#83A4AB"><input type="text" name="iWebside" value="<%=objRS("Webside")%>"></td>
    </tr>
    <tr>
      <td width="69">&nbsp;</td>
      <td width="87" bgcolor="#83A4AB">&nbsp;</td>
      <td width="137" bgcolor="#83A4AB">&nbsp;
      </td>
    </tr>
    <tr>
      <td colspan="2" bgcolor="#AAC0C6"><strong>Privat</strong></td>
      <td width="137" bgcolor="#AAC0C6">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</td>
      <td width="87" bgcolor="#AAC0C6">&nbsp;</td>
      <td width="137" bgcolor="#AAC0C6">&nbsp;
      </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>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td width="69">&nbsp;</td>
      <td width="87">&nbsp;</td>
      <td width="137">&nbsp;</td>
    </tr>
    <tr>
      <td width="69">
          <input type="reset" name="Clear" value="Clear">
      </td>
      <td width="87">&nbsp;</td>
      <td width="137" align="right"><input type="submit" name="add" value="Update" title="L&auml;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">&nbsp;</td>
      <td colspan="2" bgcolor="#84A6AD">
      <div align="center"><a href="default.asp">Index</a></div>      </td>
      <td width="85">&nbsp;</td>
      <td width="113" bgcolor="#84A6AD">
        <div align="right"><a href="new.asp">New Contact</a></div>      </td>
    </tr>
  </table>
</div>
</BODY>
</HTML>
Avatar billede gamemaster Nybegynder
17. februar 2005 - 20:34 #15
problemet var i SQL setningen
strSQL = "SELECT * FROM Kontaktpersoner WHERE ID = " & Request.Form("hiddenField")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester