Opdater Database via Form

Tags:    asp

Igen.. Jeg har skrevet om dette her før herinde, men da min harddisk satte ud, og jeg ikke havde backup for over ½ år siden, og ikke har kodet siden, er mit asp en andelse rusten. Derfor kan jeg ikke se hvad der er galt med denne kode:

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

If Request.Form("opdater") <> "" Then

strSQL = "Update med set"
strSQL = strSQL & "navn= ' " & Request.Form("opdater") & " ' "
strSQL = strSQL & " Where id = " & Request.Form("id")

Conn.Execute(strSQL)

Else
%>

<form action="med-edit.asp" method="post">
<input type="hidden" name="id" id="id" value="<%= Request.QueryString("id") %>">
<input type="text" name="opdater" value="">
<input type="submit" value="Gem">
</form>

<%
End If
%>

Når jeg trykker på gem, kan den ikke finde side, så kan det være noget omkring action="med-edit.asp"?

Håber der er nogle der fatter mere end mig (sikkert en del :D).

Hvis i har brug for mere info, så skriv.



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
I stedet for at lave den meget fine opdeling af din sql-streng, burde du nok lave den på een linje og få den til at virke først.

Før:
Fold kodeboks ind/udKode 


Jeg går ud fra at "med" er din tabel?
Efter:
Fold kodeboks ind/udKode 


Husk at enkelhed er godt... Alt det fine kan du lave når du har fået det hele gennemtestet (Refaktorering)

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk




Når jeg trykker på gem, kan den ikke finde side, så kan det være noget omkring action="med-edit.asp"?


Hvis du siger det er fordi den ikke kan finde siden, så har du vel skrevet et forkert navn ved "med-edit.asp", skriv det rigtige navn på siden... Desuden er det en god ide ved:

Fold kodeboks ind/udKode 


At skrive:

Fold kodeboks ind/udKode 


Hvis det ikke hjælper, så må du lige fortælle hvad siden du laver det på hedder, og den gemmer vel ikke oplysningerne?
---
Hilsen Anders




Hvis det ikke hjælper, så må du lige fortælle hvad siden du laver det på hedder, og den gemmer vel ikke oplysningerne?


Databasen:
"data.mdb" (indholder tabellen: "med", med kolonnen "navn")

Editsiden:
"med-edit.asp" (kommer til at hedde: "med-edit.asp?retid=1")
Da det er id "1" den ændre på.

Efter at have sat friendly HTTP errors, af på mit explore, siger den at fejlen ligger i linje 22:

Conn.Execute(strSQL)

Hvad er der galt med den linje?



strSQL = "Update med Set navn= '" & Request.Form("opdater") & "'
Where Id = 1"

Okay, nu har jeg fået lavet den så jeg kan ændre indholdet af
databasen, men kun på den der har værdien 1. Hvordan ændre jeg det
til at den selv finder ud af hvilken jeg vil ændre?

Jeg har prøvet at indsætte denne linje:

& Request.Form("id")

istedet for 1, da jeg har en form:

<input type="hidden" name="id" id="id" value="<%=
Request.QueryString("id") %>">

Håber der er en der stadig vil hjælpe.



Virker det du lige har lavet ikke da?

-------------------------------
Hilsen Jimmi Westeberg
http://www.westsworld.dk



Virker det du lige har lavet ikke da?



Jow, der hvor jeg har sat id'en til 1, virker det, men så ændre den kun 1.

Jeg har en side, hvor du trykker på et link, og bliver sendt videre til denne med-edit.asp, hvor den skal fortælle med-edit.asp siden hvor den blev sendt fra, og kun opdatere det. Hvis du forstår?

Jeg kan godt lave sådan, at den ved hvor den kom fra, altså hvor den skal ændre det.

Håber der var nogle der forstod det.

Mvh
Finn Madsen



Hvis dumhed blev belønnet, så skulle jeg ha en Mercedes. Straks.

Hvis du/i har brug for latter, så tjek den side jeg sender det fra:

Response.Write "<a href='med-edit.asp?di=" & rs("id") & "' <b>Rediger</b></a>"

di = id. Jeg har ikke skænet det en tanke, og opdagede det heller ikke da jeg tjekke det.

Den anden side vil lede efter id, men der er kun noget di.

Mange tak for hjælpen!!

Mvh
Finn Madsen



t