/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Opdatere nyhed i database
Fra : thagemann89


Dato : 12-07-05 11:44

hey,

Har endnu et lille problem, dog er det denne gang med at opdatere
data i databasen...

Kode:
<br><br><br><br>
<form action="opdaternyhed2.asp" method="post">
<input type="text" name="opdaternyhed" value="opdaternyhed">
<input type="text" name="opdateroverskrift"
value="opdateroverskrift">
<input type="text" name="opdaterid" value="opdaterid">
<input type="submit" name="submit" value="submit">

-> et lille hurtigt spørgsmål: Skal jeg ikke også have noget kode
ind hvor jeg angiver hvilken nyhed der skal opdateres? - ved bare
ikke rigtig lige hvordan jeg skal kunne skrive det.. :/


Opdaternyhed2.asp kode:
strSQL = "Update nyheder set "
strSQL = strSQL & "nyhed = " & Request.form("opdaternyhed") & "
"
strSQL = strSQL & "overskrift = " &
request.form("opdateroverskrift") & " "
strSQL = strSQL & "ID = " & Request.form("opdaterid") & " "

Conn.execute(strSQL)


Fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing
operator) in query expression 'asd overskrift = asd ID = 4'.

/asp/opdaternyhed2.asp, line 11


Linie 11 i opdaternyhed2.asp:
Conn.execute(strSQL)


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (12-07-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-07-05 12:24

thagemann89 skrev:

> <br><br><br><br>
> <form action="opdaternyhed2.asp" method="post">
> <input type="text" name="opdaternyhed" value="opdaternyhed">

Mon ikke der vil være større ide i at bruge en eksisterende værdi fra
databasen i value?

Fx (hvis du har et aktivt postsæt med den post du vil redigere):

<input type="text" name="opdaternyhed"
   value="<%= Server.HTMLencode(rs("opdaternyhed")) %>" >

> <input type="text" name="opdaterid" value="opdaterid">

Hvis dit id-felt er det der holder styr på dine poster (et auto-id eller
lignende), skal det absolut ikke være redigerbart i en
opdateringsformular. Brug et skjult felt i stedet:

<input type="hidden" name="opdaterid" value="<%= rs("opdaterID") %>">


> -> et lille hurtigt spørgsmål: Skal jeg ikke også have noget kode
> ind hvor jeg angiver hvilken nyhed der skal opdateres?

Det ligger vel allerede i din id-værdi.

> strSQL = "Update nyheder set "
> strSQL = strSQL & "nyhed = " & Request.form("opdaternyhed") & "

- herover glemmer du sql-anførselstegn (...nyhed = '" & .... & "' "),
samt at tjekke for indlejrede anførselstegn (se artiklen her:
<http://asp-faq.dk/article/?id=95>)

> strSQL = strSQL & "overskrift = " &

- du glemmer også at sætte kommaer mellem tildelingerne.
Update-syntaksen er som følger:

UPDATE tabelnavn SET felt1 = værdi1, felt2 = værdi2, ...
WHERE kriterium


> strSQL = strSQL & "ID = " & Request.form("opdaterid") & " "

Opdater aldrig en id-værdi. Aldrig. Brug den i stedet som nøgle til at
udvælge præcis den post du skal bruge:

strSQL = strSQL & " WHERE ID = " & Replace("'", "''",
Request.Form("opdaterID"))


Vær i øvrigt meget opmærksom på faren ved at køre opdaterings- eller
sletteforespørgsler uden kriterier - eller med forkerte kriterier. Hvis
man glemmer at sætte et kriterium (WHERE-delen) på, kan man hurtigt få
brug for en backup af databasen.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

thagemann89 (12-07-2005)
Kommentar
Fra : thagemann89


Dato : 12-07-05 20:10

Hej, og tusinde tak for svarene ! - Men, der opstår en fejl med denne
linie:

> <input type="text" name="opdaternyhed"
>    value="<%= Server.HTMLencode(rs("opdaternyhed")) %>" >


Fejlen lyder:

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'rs'

/asp/opdaternyhed.asp, line 12


Lige iøjeblikket er jeg fuldstændig på bar bund med ASP her, tror lige jeg
skal snuppe et par tutorials igen...

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Dj Uncas (12-07-2005)
Kommentar
Fra : Dj Uncas


Dato : 12-07-05 12:35


"thagemann89" <thomas@intelligent-design.dk> skrev i en meddelelse
news:42d39f02$0$18646$14726298@news.sunsite.dk...
> hey,
>
> Har endnu et lille problem, dog er det denne gang med at opdatere
> data i databasen...
>
> Kode:
> <br><br><br><br>
> <form action="opdaternyhed2.asp" method="post">
> <input type="text" name="opdaternyhed" value="opdaternyhed">
> <input type="text" name="opdateroverskrift"
> value="opdateroverskrift">
> <input type="text" name="opdaterid" value="opdaterid">
> <input type="submit" name="submit" value="submit">
>
> -> et lille hurtigt spørgsmål: Skal jeg ikke også have noget kode
> ind hvor jeg angiver hvilken nyhed der skal opdateres? - ved bare
> ikke rigtig lige hvordan jeg skal kunne skrive det.. :/

Du kan f.eks. lave et hidden-felt:
<input type="hidden" name="nyhedsId" value="nyhedens_id" />
I databasen er feltet ID formentlig primær nøgle, og du kan derfor med
fordel bruge det til at angive hvilken nyhed der skal opdateres.

> Opdaternyhed2.asp kode:
> strSQL = "Update nyheder set "
> strSQL = strSQL & "nyhed = " & Request.form("opdaternyhed") & "
> "
> strSQL = strSQL & "overskrift = " &
> request.form("opdateroverskrift") & " "
> strSQL = strSQL & "ID = " & Request.form("opdaterid") & " "
>
> Conn.execute(strSQL)

Syntaxen for UPDATE er således:

UPDATE tabelnavn SET felt1 = 'værdi' , felt2 = 'værdi2' WHERE nøglefelt =
'id'

I dit eksempel vil se nogenlunde sådan ud:

strSQL = "UPDATE nyheder SET "
strSQL = strSQL & "nyhed = '" & Request.Form("opdaternyhed") & "', "
strSQL = strSQL & "overskrift = '" & Request.Form("opdateroverskrift") & "'"
strSQL = strSQL & " WHERE ID = '" & Request.Form("opdaterid") & "'"

Conn.Execute(strSQL)



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste