webForumDet fria alternativet

radera i en databas...

ASPur ASP

5 svar · 255 visningar · startad av mikael_a

mikael_aMedlem sedan mars 2000475 inlägg
#1

hej,

jag får följande fel:HTTP-fel 405
405 Ogiltig metod

Den metod som anges i begäran är inte tillåten för den resurs som begäran avser. Kontrollera att du använder rätt MIME-typ för den resurs som du frågar efter.

Kontakta serverns administratör om det här problemet kvarstår.

***

det jag försöker göra är att radera en "post" i en databas... skickar med .asp filerna.

*** filen: delete.asp ***

<%@ Language=VBScript %>

<html>
<body>

<%
Set MyConn = Server.CreateObject("ADODB.Connection")
Set RS=Server.CreateObject("ADODB.RecordSet")
MyConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\Inetpub\wwwroot\databas\admin.mdb"

RS.Open "Select * From admin", MyConn

Do While Not RS.eof

%>
<table>
<tr>
<td>
<form action="delete2" method="Post">
<INPUT Type=CheckBox Name="toDelete" Value=<% = RS("ID")%>></td>
<TD><% = RS("user_name")%></TD>
<TD><% = RS("password")%></TD>
</TR>
<%RS.movenext%>
<%Loop%>
</table>
<%RS.close%>
<%MyConn.close%>
<input type="submit" value="Delete">
</form>
</table>

</body>
</html>

*** filen delete2.asp ***

<%
Dim itemToDelete, RS, MyConn, SQL
itemToDelete = Request.Form("toDelete")

Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\Inetpub\wwwroot\databas\admin.mdb"

SQL = "DELETE FROM admin WHERE ID = " & itemToDelete & ""
Set RS = MyConn.Execute(SQL)
MyConn.Close
Set MyConn = Nothing
%>

<center>Record Deleted!</center>

</body>
</html>

*************

vad gör jag för fel???

------------------
Micke & Annas Sajt
micke@micke-anna.nu

emissionMedlem sedan dec. 19996 721 inlägg
#2

formuläret är nästlat. Koden spottar ur sig

<FORM action="delete2">
.
.
<FORM action="delete2">
.
.
</FORM>

Tabellen pajar på samma sätt.

action="delete2" är inte en komplett sökväg.

------------------
----------------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB
Norrköping
ASP/VB/Perl/PHP/Tango

mikael_aMedlem sedan mars 2000475 inlägg
#3

och hur kan jag undvika detta då?

eller finns det ett enklare sätt att radera data på?

------------------
Micke & Annas Sajt
micke@micke-anna.nu

VideMedlem sedan dec. 19998 577 inlägg
#4

Hejsan!

Precis som emission säger så ligger det en <form>-tag i loopen. Flytta ut den utanför och rätta till sökvägen till vilken sida du nu vill, t.ex delete2.asp eller nått...

... Ett annat problem är att när du har klickat i två eller flera checkrutor med samma namn nå kommer outputen bli EN textsträng där värdena är kommasepparerade... detta får du lösa genom att använda dig av en loop där också:

itemToDelete = Split(Request.Form("toDelete"),",")
For i = 0 to ubound(itemToDelete)
SQL = "DELETE FROM admin WHERE ID = " & itemToDelete(i)
MyConn.Execute(SQL)
Next
MyConn.Close
Set MyConn = Nothing

Typ nått sånthär borde väl fungera...

------------------
MVH / Vide
Min hemsida:webeye.nu

mikael_aMedlem sedan mars 2000475 inlägg
#5

ok, jag skall testa...

------------------
Micke & Annas Sajt
micke@micke-anna.nu

emissionMedlem sedan dec. 19996 721 inlägg
#6

... Ett annat problem är att när du har klickat i två eller flera checkrutor med samma namn nå kommer outputen bli EN textsträng där värdena är kommasepparerade... detta får du lösa genom att använda dig av en loop där också:

Mnjavisst kan man göra så, men det fina i kråksången är ju att man även får ett collection-objekt så att man kan köre:

for i=1 to request.form("toDelete").count

..och hämta värdet med request.form("toDelete")(i)

Däremot kan man använda din array och köra:

SQL=join(itemtodelete,",")

och WHERE ID IN (" & SQL & ")"

Så får man bara ett SQL-anrop

251 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
124 ms — hämta forumlista (db)
124 ms — hämta statistik (db)
125 ms — hämta tråd, inlägg och bilagor (db)