Avatar billede Slettet bruger
23. marts 2001 - 17:09 Der er 27 kommentarer og
1 løsning

Database-hvordan opdatere jeg poster

Jeg er i gang med at lave en kontakt liste og det er meningen at man skal kunne rette i databasen.
Jeg har lavet en form der henter id og tilhørende felter fra databasen og ved submit skal ændringer foretages i databsen under samme ID.
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:13 #1
Set rs = Server.CreateObject(\"ADODB.RecordSet\")
SQL = \"Select * From tabel WHERE id=\" & request(\"id\")
rs.Open SQL, Conn, 1, 3

rs(\"tekst\") = Request.form(\"tekst\")
rs(\"tekst2\") = Request.form(\"tekst2\")
rs.Update
Avatar billede nute Nybegynder
23. marts 2001 - 17:13 #2
ved submit skal du fyre av følgende SQL (fx):

\"UPDATE [tabellnavn] SET email = \'\" & request.form(\"email\") & \"\', navn = \'\" & request.form(\"navn\") & \"\' WHERE id = \" & request(\"id\")

u c my point ?

/nute
Avatar billede madd Nybegynder
23. marts 2001 - 17:14 #3

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"db/database.mdb\")


SQLstmt = \"UPDATE DISTINCTROW [DinTable] SET [DinValue] = \'Detduvilindsætte\' WHERE id = \" & Request(\"id\")
response.write sqlstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing
Avatar billede madd Nybegynder
23. marts 2001 - 17:16 #4
hehe, det gik stærkt... ;)
Avatar billede Slettet bruger
23. marts 2001 - 17:22 #5
Jeg har lave en side (ret.asp)
hvor felterne i formen har de værdier der er i posterne. min submit føre så formen til (retkontakt.asp) så jeg gerne vil have at den åbner i database med det Id der kommer fra formen og erstatte felterne med de nye fra formen

Avatar billede Slettet bruger
23. marts 2001 - 17:23 #6
Hvad er smartes at bruge i har alle tre, forskellige muligheder
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:24 #7
så kom med ret.asp
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:25 #8
min er nok dne letteste for der får du aldrig SQL fejl!
Avatar billede nute Nybegynder
23. marts 2001 - 17:26 #9
madd >> hvorfor benytter du DISTINCTROW ??? det er da ikke nødvendig, spesielt ikke når man setter en \"WHERE id = xx\"

mhingeh >> oppdateringen foregår ved å fyre av denne SQL:

SQL = \"UPDATE [tabellnavn] SET email = \'\" & request.form(\"email\") & \"\', navn = \'\" & request.form(\"navn\") & \"\' WHERE id = \" & request(\"id\")

/nute

Avatar billede nute Nybegynder
23. marts 2001 - 17:28 #10
tpiil >> det er ikke så pen måte å kode seg ut av problemer på den måten. Selv om det er mulig, så er det ikke en \"standard\" måte å modifisere innhold i en tabell.
/nute
Avatar billede Slettet bruger
23. marts 2001 - 17:28 #11
Her er RET.asp

<%
response.expires = 0
if session(\"access\") <> true then response.redirect \"login.asp\"
id = request(\"id\")

set dsn = Server.CreateObject(\"ADODB.Connection\")
set db = Server.CreateObject(\"ADODB.RecordSet\")
dsn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"/data/adresse.mdb\")

db.open \"SELECT * FROM Adresse WHERE id=\" & id, dsn


%>

<html>

<head>
</head>

<body>

<form method=\"POST\" action=\"retkontakt.asp?mode=save.asp\"> 
  <table border=\"0\" width=\"354\">
    <tr>
      <td width=\"182\">
        <p align=\"left\"><b><font size=\"5\">Ret i Navnelisten</font></b></p>
        <p align=\"left\"><input type=\"hidden\" name=\"id\" size=\"20\" value=\"<%Response.write db(\"id\")%>\"><br>
        </p>
      </td>
    </tr>
    <tr>
      <td width=\"338\"><b>Fornavn<br>
  <input type=\"text\" name=\"Fornavn\" size=\"29\" value=\"<%Response.write db(\"fornavn\")%>\"><br>
        Efternavn<br>
        </b><input type=\"text\" name=\"Efternavn\" size=\"29\" value=\"<%Response.write db(\"efternavn\")%>\"><br>
        <b>
  Adresse<br>
  <input type=\"text\" name=\"Adresse\" size=\"29\" value=\"<%Response.write db(\"adresse\")%>\"><br>
        Post&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; By<br>
        <input type=\"text\" name=\"Post\" size=\"8\" value=\"<%Response.write db(\"post\")%>\"> <input type=\"text\" name=\"By\" size=\"19\" value=\"<%Response.write db(\"by\")%>\"><br>
        Tlf<br>
  <input type=\"text\" name=\"Tlf\" size=\"29\" value=\"<%Response.write db(\"telefon\")%>\"><br>
        Mobil<br>
        </b><input type=\"text\" name=\"Mobil\" size=\"29\" value=\"<%Response.write db(\"mobil\")%>\"><b><br>
        Telefax<br>
        </b><input type=\"text\" name=\"Telefax\" size=\"29\" value=\"<%Response.write db(\"telefax\")%>\"><b><br>
        Land<br>
        </b><input type=\"text\" name=\"Land\" size=\"29\" value=\"<%Response.write db(\"land\")%>\"><b><br>
  Email</b><br>
  <input type=\"text\" name=\"Email\" size=\"29\" value=\"<%Response.write db(\"email\")%>\"><b><br>
        </b></td>
    </tr>
    <tr>
      <td width=\"182\">
        <p align=\"left\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=\"submit\" value=\"    Tilføj    \" name=\"Send\">
        <input type=\"reset\" value=\"Nulstil\" name=\"B2\"></td>
    </tr>
  </table>
</form>

</body>

</html>
Avatar billede Slettet bruger
23. marts 2001 - 17:28 #12
og her er retkontakt.asp

<%
id = request.form(\"id\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
SQL = \"Select * From Adresse WHERE id=\" & request.form(\"id\")
rs.Open SQL, Conn, 1, 3

rs(\"fornavn\") = Request.form(\"fornavn\")
rs(\"efternavn\") = Request.form(\"efternavn\")
rs.Update 


%>




<body onunload=\'window.opener.location.reload()\'>


<p align=\"center\"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

</BODY>
Avatar billede Slettet bruger
23. marts 2001 - 17:29 #13
Hvad gør jeg galt
Avatar billede Slettet bruger
23. marts 2001 - 17:30 #14
JEG ER EN DER SKAL HAVE DET SKÅRET UD I PAP :)
TOTAL AMATØR JEG ER..............
Avatar billede madd Nybegynder
23. marts 2001 - 17:34 #15
<body>
<html>

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"db/database.mdb\")


SQLstmt = \"UPDATE DISTINCTROW Adresse SET Fornavn = \'\" & Request.Form(\"Fornavn\") & \"\', Efternavn = \'\" & Request.Form(\"Efternavn\") & \"\', Adresse = \'\" & Request.Form(\"Adresse\") & \"\', Telefon = \'\" & Request.Form(\"Tlf\") & \"\', Mobil = \'\" & Request.Form(\"Mobil\") & \"\', Telefax = \'\" & Request.Form(\"Telefax\") & \"\', Land = \'\" & Request.Form(\"Land\") & \"\', Email = \'\" & Request.Form(\"Email\") & \"\' WHERE id = \" & Request.Form(\"id\")
response.write sqlstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing


</body>

</html>
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:34 #16
<%
id = request.form(\"id\")

set dsn = Server.CreateObject(\"ADODB.Connection\")
dsn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"/data/adresse.mdb\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
SQL = \"Select * From Adresse WHERE id=\" & id
rs.Open SQL, dsn, 1, 3

rs(\"fornavn\") = Request.form(\"fornavn\")
rs(\"efternavn\") = Request.form(\"efternavn\")
rs(\"adresse\") = Request.form(\"Adresse\")
rs(\"Post\") = Request.form(\"post\")
rs(\"telefon\") = Request.form(\"Tlf\")
rs(\"mobil\") = Request.form(\"Mobil\")
rs(\"telefax\") = Request.form(\"Telefax\")
rs(\"land\") = Request.form(\"Land\")
rs(\"email\") = Request.form(\"Email\")
rs.Update
%>




<body onunload=\'window.opener.location.reload()\'>


<p align=\"center\"><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

</BODY>
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:36 #17
retkontakt.asp:
<%
id = request.form(\"id\")

set dsn = Server.CreateObject(\"ADODB.Connection\")
dsn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"/data/adresse.mdb\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
SQL = \"Select * From Adresse WHERE id=\" & id
rs.Open SQL, dsn, 1, 3

rs(\"fornavn\") = Request.form(\"fornavn\")
rs(\"efternavn\") = Request.form(\"efternavn\")
rs(\"adresse\") = Request.form(\"Adresse\")
rs(\"Post\") = Request.form(\"post\")
rs(\"telefon\") = Request.form(\"Tlf\")
rs(\"mobil\") = Request.form(\"Mobil\")
rs(\"telefax\") = Request.form(\"Telefax\")
rs(\"land\") = Request.form(\"Land\")
rs(\"email\") = Request.form(\"Email\")
rs.Update
%>
Db\'en er opdateret :)
Avatar billede madd Nybegynder
23. marts 2001 - 17:36 #18
Ovenstående er retkontakt.asp ....
En lille rettelse:

Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"db/database.mdb\")

SKAL ERSTATTES MED

Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/data/adresse.mdb\")

Avatar billede Slettet bruger
23. marts 2001 - 17:38 #19
Microsoft OLE DB Provider for ODBC Drivers
TPIIL

error \'80004005\'

[Microsoft][ODBC Microsoft Access Driver] Field \'Adresse.Telefon\' cannot be a zero-length string.

/retkontakt.asp, line 20
Avatar billede madd Nybegynder
23. marts 2001 - 17:40 #20
Små fejl er nu rettet....her er retkontakt.asp:

<body>
<html>

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/data/adresse.mdb\")


SQLstmt = \"UPDATE DISTINCTROW Adresse SET Fornavn = \'\" & Request.Form(\"Fornavn\") & \"\', Efternavn = \'\" & Request.Form(\"Efternavn\") & \"\', Adresse = \'\" & Request.Form(\"Adresse\") & \"\', Telefon = \'\" & Request.Form(\"Tlf\") & \"\', Mobil = \'\" & Request.Form(\"Mobil\") & \"\', Telefax = \'\" & Request.Form(\"Telefax\") & \"\', Land = \'\" & Request.Form(\"Land\") & \"\', Email = \'\" & Request.Form(\"Email\") & \"\' WHERE id = \" & Request.Form(\"id\")
response.write sqlstmt

Conn.Execute (SQLstmt)

conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>

</body>
</html>
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:40 #21
så skal du bare huske at skrive noget i formen :)
Avatar billede Slettet bruger
23. marts 2001 - 17:43 #22
tpiil

Det virker hvis alle felterne er udfyldt men.

Der skal være mulighed for at nogle af felterne er tomme
Avatar billede nute Nybegynder
23. marts 2001 - 17:44 #23
lag din \'retkontakt.asp\'  om til dette:

<%
id = request.form(\"id\")

fornavn = request.form(\"Fornavn\")
efternavn = request.form(\"Efternavn\")
adresse = request.form(\"Adresse\")
by = request.form(\"By\")
telefon  = request.form(\"Telefon\")
mobil = request.form(\"Mobil\")
land  = request.form(\"Land\")
email = request.form(\"Email\")

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
SQL = \"UPDATE Adresse SET fornavn = \'\" & fornavn & \"\', \" & _
      \"efternavn = \'\" & efternavn & \"\', \" & _
      \"adresse = \'\" & adresse & \"\', \" & _
      \"by = \'\" & by & \"\', \" & _
      \"telefon  = \'\" & telefon & \"\', \" & _
      \"mobil = \'\" & mobil & \"\', \" & _
      \"land  = \'\" & land & \"\', \" & _
      \"email = \'\" & email & \"\' WHERE id=\" & id
rs = Conn.execute(SQL)


%>

hvorfor gjør du dette:

<body onunload=\'window.opener.location.reload()\'>

??? det vil jo ikke gjøre noe godt...

/nute
Avatar billede tpiil Nybegynder
23. marts 2001 - 17:45 #24
ja det er ikke mit problem det er faktisk dit for det skal laves i databasen men hvis du sender den på tpiil@netstuff.dk kan jeg lige ordne det for dig :)
Avatar billede Slettet bruger
23. marts 2001 - 17:47 #25
nute

<body onunload=\'window.opener.location.reload()\'>

´det er til at opdatere siden jeg kom fra med de nye ændringer når jeg lukker siden ned :)
Avatar billede Slettet bruger
23. marts 2001 - 18:04 #26
tpiil

løb af med sejren, og kunne løse mit problem

TAK  :)
Avatar billede tpiil Nybegynder
23. marts 2001 - 18:06 #27
sejren?? hvis jeg skal kalde det en sejr skal der penge på bordet og ikke point :)
Avatar billede nute Nybegynder
23. marts 2001 - 18:07 #28
mhingeh >> bare litt nyskjerrig....hvorfor reloade en side når man er på vei ut av den ?? det henger jo ikke sammen ?! (med mindre det er et popup vindu)

/nute
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