webForumDet fria alternativet

Ta bort rad i databas

ASPur ASP

23 svar · 511 visningar · startad av Anders84

Anders84Medlem sedan nov. 200226 inlägg
#1

Hur tar jag bort en hel rad i en databas?

MVH Anders

SebbeMedlem sedan jan. 20032 285 inlägg
#2
strSQL = "DELETE FROM tabell WHERE ID = " & Request.QueryString("id")

:)

Anders84Medlem sedan nov. 200226 inlägg
#3

Varför vill inte detta funka?

<%
Call dbOpen(Conn)
Set rsTaBort = Server.CreateObject ("ADODB.Recordset")
if (Request.QueryString ("delete") = 1 ) then
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv")
rsTaBort.Open sqlTaBort,conn
Conn.Close
end if
%>

MVH ANders

m_soderlundMedlem sedan sep. 20026 425 inlägg
#4

Och sen kan man ju bygga på saken så att det blir säkrare:

Dim Id
Id = Cint(Trim(Replace(Request.Querystring("id"),"'","")))
@ndersMedlem sedan juni 200032 969 inlägg
#5

På vilket sätt fungerar det inte?
Felmeddelande?

Anders84Medlem sedan nov. 200226 inlägg
#6

Inget alls händer, blir inget felmeddelande

@ndersMedlem sedan juni 200032 969 inlägg
#7

Kontrollera att du kommer in i if-satsen. Du får alltid strängar från Request.Querystring, för övrigt, därför ska du inte jämföra med ett tal.

<% 
Call dbOpen(Conn) 
Set rsTaBort = Server.CreateObject ("ADODB.Recordset") 
if (Request.QueryString ("delete") = [b]"1"[/b] ) then 
anv = Request.QueryString("anv") 
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
rsTaBort.Open sqlTaBort,conn 
Conn.Close 
end if 
%>
m_soderlundMedlem sedan sep. 20026 425 inlägg
#8

Eeeeller varför inte skippa Recordsetet?

If Cint(Request.QueryString("delete"))=1 Then 
Dim anv
anv = Trim(Replace(Request.QueryString("anv"),"'",""))
Conn.Execute "DELETE *FROM anvandare WHERE anvandare=" & anv,,128
End if
@ndersMedlem sedan juni 200032 969 inlägg
#9

Och ännu lite snyggare:
* Utan onödigt recordset
* Ska du stänga conn-objektet i if-satsen kanske öppningen hör hemma i if-satsen också?

<% 
if (Request.QueryString ("delete") = "1" ) then 
   Call dbOpen(Conn) 
   anv = Request.QueryString("anv") 
   sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
   Conn.Execute sqlTaBort, , 128
   Conn.Close 
end if 
%>

mvh

solbulleMedlem sedan mars 20015 287 inlägg
#10
<%
if Request.QueryString("delete") = "1" then 
	Call dbOpen(Conn) 
	Conn.execute "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv"),,128
	Conn.Close 
end if 
%>
m_soderlundMedlem sedan sep. 20026 425 inlägg
#11

Massa bra alternativ blev det, men mitt blev väl säkrast, eller..? En kombination av @nders, mitt och solbulles verkar bäst, eller?
I alla fall, massa förslag blev det!

Anders84Medlem sedan nov. 200226 inlägg
#12

jag fick faktiskt inte nån av koderna att funka måste vara nått annat som är fel med vad vet jag inte.

MVH Anders

solbulleMedlem sedan mars 20015 287 inlägg
#13

Hur ser länken ut som skickar dig till den aktuella sidan?

m_soderlundMedlem sedan sep. 20026 425 inlägg
#14

Men vad får du för felmeddelande..?

Anders84Medlem sedan nov. 200226 inlägg
#15

Får inget felmeddelande. ska jag skicka hela koden lr?

solbulleMedlem sedan mars 20015 287 inlägg
#16
<%
if Request.QueryString("delete") = "1" then 
	Call dbOpen(Conn) 
	Conn.execute "DELETE FROM anvandare WHERE anvandare ='" & Request.QueryString("anv") & "'",,128
	Conn.Close 
end if 
%>
Anders84Medlem sedan nov. 200226 inlägg
#17

Hur jag än gör så vill de inte funka och de som är jobbigt är att man inte får nått felmeddelande *suck*

solbulleMedlem sedan mars 20015 287 inlägg
#18

Visa hela koden samt hur länken ser ut som för dig till denna sidan!

Anders84Medlem sedan nov. 200226 inlägg
#19

<!--#include file="adminkoll.asp" -->
<!--#include file="../../koppling.asp" -->
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<p>Lägg till
ny användare</p>
<form action="addusr.asp" method=post>
<table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="right">Användarnamn:
</div>
</td>
<td>
<input type="text" name="anv">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right">Lösenord:
</div>
</td>
<td>
<input type="text" name="losen">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right">Admin:
</div>
</td>
<td>
<input type="checkbox" name="admin" value="1">
</td>
<td> </td>
</tr>
<tr>
<td>
<div align="right"></div>
</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
<div align="right"></div>
</td>
<td>
<input type="submit" name="Skicka" value="Spara">
</td>
<td> </td>
</tr>
</table>
</form>

<%

if (Request.QueryString ("delete") = "1" ) then
Call dbOpen(Conn)
anv = Request.QueryString("anv")
sqlTaBort = "DELETE FROM anvandare WHERE anvandare =" & anv
Conn.Execute sqlTaBort, , 128
Conn.Close
end if
%>

<table width="70%" border="0" cellspacing="0" cellpadding="0">
<tr><td><b>Förnamn:</b></td><td><b>Efternamn:</b></td><td><b>Användarnamn:</b></td><td><b>Behörighet:</b></td></tr>
<tr><td colspan="4"><hr></td></tr>
<%
SQL = "SELECT anvandare, fnamn, enamn, typ FROM anvandare ORDER BY anvandare"
set Rs = Conn.Execute(SQL)
Do Until Rs.EOF
%>
<tr>
<td><%=Rs("fnamn")%></td>
<td><%=Rs("enamn")%></td>
<td><%=Rs("anvandare")%></td>
<td><% if Rs("typ") = 1 then%>Admin<%end if%></td>
<td><a href ="lista.asp?&delete=1&anv=<%=Rs("anvandare")%>">ta bort</a></td>
</tr>
<%
Rs.MoveNext
Loop
Rs.Close
Conn.Close
%>
</table>
</body>
</html>

<%
if Request.QueryString("delete") = "1" then
Call dbOpen(Conn)
Conn.execute "DELETE FROM anvandare WHERE anvandare =" & Request.QueryString("anv"),,128
Conn.Close
end if
%>

solbulleMedlem sedan mars 20015 287 inlägg
#20
<td><a href ="lista.asp?delete=1&anv=<%=Rs("anvandare")%>">ta bort</a></td>

Har du verkligen "tabort"-koden på två ställen i din kod?!?

133 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)