Fejltype: ADODB.Recordset (0x800A0CC1) Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal. /eksamenstest/byskov/cms/info_edit.asp, line 24
Det lyder umiddelbart som om tabellen ikke indeholder et felt der hedder itxt, men jeg synes da du opdaterer feltet i din UPDATE-sætning (ved postback), så det forstår jeg ikke helt... Kan du vise koden omkring den linie der fejler (og gerne markere den linie der fejler)?
Ja, der skal naturligvis være underscore i i_txt, hvis det er det feltet hedder i databasen. Jeg tog udgangspunkt i at din UPDATE fungerede... (det kan du så nu konkludere, at den ikke gør, da feltnavnene ikke stemmer overens med de feltnavne du har i tabellen).
<% if request.QueryString("act") = "shop_info" then sql = "SELECT * FROM info ORDER BY i_id ASC" set rs = Conn.Execute(sql) end if %>
<table> <% if request.QueryString("act") <> "" then do until rs.eof%> <tr> <td> <a href="?page=info_edit&iid=<%=rs("i_id")%>&action=edit"><%=rs("i_over")%></a> </td> <td> <a href="?page=info_edit">Ny</a> - <a href="?page=info_edit&iid=<%=rs("i_id")%>&action=del">Slet</a> </td> </tr> <%rs.movenext loop end if %> </table>
Du bør i øvrigt udføre et minimum af validering på de felter som postes til siden, så du undgår (tilfældig eller overlagt) SQL-injection. Dvs. du skal mindst udskifte apostroffer med dobbelt apostroffer i tekstfelter og du bør ligeledes kontrollere at der rent faktisk er talværdier i dine numeriske felter. Eksempelvis:
i_id = Request.Form("iid") i_over = Request.Form("iover") & "" ' HEDDER DENNE IKKE OVERSKRIFT??? i_txt = Request.Form("itxt") & ""
if isnumeric(i_id) then i_over = replace(i_over, "'", "''") i_txt = replace(i_txt, "'", "''")
sqlU = "UPDATE info SET i_over='"&iover&"', i_txt='"&i_txt&"' WHERE i_id="&i_id&"" Conn.Execute(sqlU)
Response.Redirect("info_edit.asp") else Rseponse.Write("Der er fejl i data!") Response.End end if
Ja, du skal nok udpege den række i databasen du ønsker at vedligeholde (dvs. det ville jeg jo synes var mest logisk i en vedligeholdelsessituation - men jeg kender jo ikke kravene til din formular)...
Jeg ville forvente en SELECT der så således ud:
sqlinfo = "SELECT * FROM info WHERE id = " & infoid
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.