Hej...
Ser att det finns en liknande tråd i detta forum just nu men jag hittar inte svaret där ändå..eller får det i alla fall inte att fungera.
Det är som så att jag vill ha en länk bredvid varje post så jag snabbt kan radera den.
När man trycker på länken kommer man till denna sida som har följande kod:
<%
Id=request.querystring("Id")
Set db = Server.CreateObject("ADODB.Connectio")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas.mdb")
SQL = "DELETE * FROM Test WHERE Id = "& Id &"
Set rs = db.Execute(SQL)
Set rs = nothing
Set db = nothing
Response.Redirect "test.asp"
%>
Är jag helt ute och cyklar? är detta HELT fel kod eller rör det sig om någon kom som endast fattas?
<%
Id=request.querystring("Id")
Set db = Server.CreateObject("ADODB.Connectio")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas.mdb")
SQL = "DELETE FROM Test WHERE Id = "& Id
db.Execute(SQL)
Set db = nothing
Response.Redirect "test.asp"
%>
Så borde fungera (förutsatt att Id är ett numeriskt värde, annars kan du få lite roliga felmeddelanden :)
Nepp det fungerar tyvärr ändå inte:
Jag skickar med hela koden istället!:
sidan "test.asp":
<html>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("db/block.mdb")
SQL = "SELECT * FROM Test"
Set rs = db.Execute(SQL)
%>
<%
Do Until RS.EOF
%>
<%=rs("Namn")%>
<br>
<a href=""delete.asp?id="& RecSet("Id") &""">Radera</a>
<br>
<br>
<br>
<%
rs.MoveNext
Loop
%>
sedan koden för sidan "delete.asp":
<%
Id=request.querystring("Id")
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas.mdb")
SQL = "DELETE * FROM Test WHERE Id = "& Id
Set rs = db.Execute(SQL)
Set rs = nothing
Set db = nothing
Response.Redirect "test.asp"
%>
Databasen heter som sagt block.mdb och har en tabell som heter Test, samt två kolumner varav en är en Räknare som heter Id och en som är Text som heter Namn.
Har du avaktiverat Visa egna HTTP-felmeddelande i din webbläsare?
- Om inte, gör det nu.
Testa detta:
[red]<html>
<body>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db\block.mdb")
Set rs = db.Execute("SELECT Id, Namn FROM Test")
If NOT rs.EOF Then
Do Until rs.EOF
intID = rs("Id")
strName = rs("Namn")
Response.Write "<p>"& strName &"<br><a href=""delete.asp?id="& intID &""">Radera</a></p>"
rs.MoveNext
Loop
End If
rs.Close : Set rs = Nothing
db.Close : Set db = Nothing
%>
</body>
</html>
...
<html>
<body>
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("db\block.mdb")
db.Execute("DELETE FROM Test WHERE Id="& trim(Request.Querystring("id"))),,128
db.Close
Set db = nothing
Response.Redirect "test.asp"
%>
</body>
</html>[/red]
Wow tack det funkade. Men varför går det inte med koden jag har skrivit då? Jag menar den kod du skickade med var skilde sig ju relativt mycket från min kod!
Största skillnaden är nog att du försöker ta bort en post ur fel databas, och eftersom
du inte avaktiverat egna felmeddelande i din webbläsare så ser du inte vad som är fel.. ;)
Desutom optimerade jag din kod en aning med en stabilare db-provider mm. mm.
Jaha men jag skrev databas.mdb när ja skulle posta det här som exempel...Vet inte varför :D...Men som sagt har du som är bra på ASP nån förklaring tilll varför den kod jag först skrev inte funkar?
Dessutom kommer ett skumt felmeddelande upp efter jag raderat en post nu är det endast en post kvar i databasen och då går det inte att öppna sidan över huvud taget! Fel 500 står det. Och jag hade visst aktiverat Egna felmeddelande :D
nu laddade jag upp databasen igen med alla fem poster i!
Då står det så här på sidan:
Namn1
Radera
Namn2
Radera
Namn3
Radera
Namn4
Radera
Namn5
Radera
...
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'Id='.
/bannus/test2.asp, line 36
om jag tar bort en post kommer jag tillbaks till sidan men då har felmeddelandet försvunnit. Då kan man ihnte radera igen! Då måste man gå tillbaks eller ladda om för att kunna ta bort igen. För då är fel meddelande där igen!
Jaha tack....Men du det funkade i alla fall med länk koden jag fick av dig!
Tack Peeer, Palle och nu också @nders...
Tur att det finns hjälpsamma människor som ni ;)
291 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e