Avatar billede mickill Nybegynder
03. marts 2003 - 12:29 Der er 15 kommentarer og
1 løsning

Opdatering i database

Hejsa

Jeg prøver at opdatere i min database således:

<%
    Dim rs1
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    strSQL1 = "Select * From Hoverskrifter Where Id = " & Session("Id")
    rs1.Open strSQL1, Conn, 1, 3
   
    rs1.Update
    rs1("overskrift") = Request.Form("kategori")
    rs1.Update
   
    Dim rs2
    Set rs2 = Server.CreateObject("ADODB.Recordset")
    strSQL2 = "Select * From Hemner Where overskrift = '" & Session("navn") & "'"
    rs2.Open strSQL2, conn, 1, 3
   
    rs2.Update
    rs2("overskrift") = Request.Form("kategori")
    rs2.Update
   
    Response.Redirect "default.asp"
%>

men det som jeg prøver at opdatere bliver i stedet slettet.
Hvorfor ??

/Mickill
Avatar billede erikjacobsen Ekspert
03. marts 2003 - 12:34 #1
Så står der vel ikke noget i Request.Form("kategori")
Du behøver ikke den første af dine 2 rs1.Update hhv rs2.Update
Avatar billede mickill Nybegynder
03. marts 2003 - 12:39 #2
Jo der står noget i min form.
Avatar billede erikjacobsen Ekspert
03. marts 2003 - 12:40 #3
Men Request.Form("kategori") kan vel godt være tom!
Avatar billede longshanks Nybegynder
03. marts 2003 - 12:45 #4
prøv lige at køre denne kode inden du opdaterer:

dim par
for each par in Request.Form
Response.Write par & "-" & request.form(par)
Next

Så vil du se om alle variabler føres med over fra formen......

Er der nogle huller er det der fejlen er
Avatar billede erikjacobsen Ekspert
03. marts 2003 - 12:53 #5
(mit gæt er du har en <form> uden method eller med method="get")
Avatar billede hossein Nybegynder
03. marts 2003 - 13:23 #6
Prøv en gang med:
rsXX.Open strSQL2, conn, 3, 3
Avatar billede eagleeye Praktikant
03. marts 2003 - 14:38 #7
Eller inputet feltet hedder noget andet end "kategori".
Det kunne måske hedde "overskrift"?
Avatar billede mickill Nybegynder
03. marts 2003 - 15:57 #8
min form ser således ud:

  <tr>
    <td><font face="Verdana" size="2" color="#000000">Opdater kategori:</font></td>
    <td><input type="text" name="kategori" value="<%=Session("navn")%>"></td>
    <td><input type="submit" name="Submit" value="Opdater"></td>
  </tr>

min method="post" action="siden med min asp script (øverst)"
i textfeltet med value="<%=Session("navn")%>"> står der noget og det er bla det som der skal kunne opdateres, men i stedet bliver slettet inde i databasen.
Hvis jeg prøver at udskrive begge mine sql-strenge ser det ikke ud til at der skulle være noget galt.
Avatar billede erikjacobsen Ekspert
03. marts 2003 - 16:01 #9
Du kan ikke vise os hele koden. Der er noget galt - men ikke umiddelbart
i det du viser os.
Avatar billede mickill Nybegynder
03. marts 2003 - 16:02 #10
side med formular:

<!--#include file="dbforb.asp"-->
<%
Session("Id") = Request.QueryString("Id")
Session("navn") = Request.QueryString("navn")

Set rsKategori = Server.CreateObject("ADODB.Recordset")
strSQL = "Select * From Hoverskrifter Where Id = " & Session("id")
rsKategori.Open strSQL, Conn, adOpenForwardOnly
%>
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<form nethod="post" action="opdater_kateoverskrift.asp">
<table width="60%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td colspan="3" bgcolor="#808080"><font face="Verdana" size="3" color="#FFFFFF">Her kan du enten opdatere kategorien eller eller slette kategorien og alle dens underliggende emner</font></td>
  </tr>
  <tr>
    <td><font face="Verdana" size="2" color="#000000">Opdater kategori:</font></td>
    <td><input type="text" name="kategori" value="<%=Session("navn")%>"></td>
    <td><input type="submit" name="Submit" value="Opdater"></td>
  </tr>
  <tr>
    <td><font face="Verdana" size="2" color="#000000">Slet kategori (og emner):</font></td>
    <td>&nbsp;</td>
    <td><a href="slet_kategori.asp?Id=<%=rsKategori("Id")%>&kategori=<%=rsKategori("overskrift")%>"><img src="nyebilleder/slet_knap.gif" width="73" height="23" alt="" border="0"></a></td>
  </tr>
</table>
</form>
</body>
</html>

asp side:

<!--#include file="dbforb.asp"-->
<%
    Dim rs1
    Set rs1 = Server.CreateObject("ADODB.Recordset")
    strSQL1 = "Select * From Hoverskrifter Where Id = " & Session("Id")
    rs1.Open strSQL1, Conn, 1, 3
   
    rs1.Update
    rs1("overskrift") = Request.Form("kategori")
    rs1.Update
   
    Dim rs2
    Set rs2 = Server.CreateObject("ADODB.Recordset")
    strSQL2 = "Select * From Hemner Where overskrift = '" & Session("navn") & "'"
    rs2.Open strSQL2, conn, 1, 3
   
    rs2.Update
    rs2("overskrift") = Request.Form("kategori")
    rs2.Update
   
    Response.Redirect "default.asp"
%>
Avatar billede eagleeye Praktikant
03. marts 2003 - 18:26 #11
Prøv at udskrive Request.Form("kategori") og test den virkelig indeholder det du skriver i input feltet.
Avatar billede hossein Nybegynder
03. marts 2003 - 23:28 #12
det gælder for begge recordset. Kursuren er ikke helt rigtig, skal vær:
 
rs2.Open strSQL2, conn, adOpenStatic, adLockOtimistic, adCmdText
   
    ' rs2.Update  skal ikke med
    rs2("overskrift") = Request.Form("kategori")
    rs2.Update
    rs2.Close  ' Skal lukkes
    Set rs2 = Nothing  ' Ryd op
Avatar billede mickill Nybegynder
04. marts 2003 - 08:35 #13
Når jeg udskriver Request.Form("kategori"), får jeg intet resultat, men der står altså noget i tekstfeltet, så den må have en value.
Hvorfor kan jeg så ikke skrive den value ud ???
Avatar billede mickill Nybegynder
04. marts 2003 - 11:23 #14
Har fundet fejlen, en temmelig latterlig en faktisk.
Der står nethod="post" i stedet for method="post".
Det har jeg cirka brugt en 2-3 timer på at finde ud af. *LOL*
Hvor dum kan man være?

Ellers mange tak for hjælpen folks.

/Mickill
Avatar billede erikjacobsen Ekspert
04. marts 2003 - 11:27 #15
Det er et godt argument for at køre en HTML-validering
(eller XHTML eller ...) på sine sider. Browsere er
notorisk dårlige til at finde fejl med. Eksperten.dk
er lidt bedre ... ;) Kun lidt ;)
Avatar billede mickill Nybegynder
02. september 2003 - 08:18 #16
Vist på tide jeg lukker. :o)
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