ADO Kayıt Güncelleme

Veritabanı tablosundaki bir kaydı güncellemek için SQL'in UPDATE komutunu kullanabiliriz.

Veritabanı tablosundaki kayıtları güncelleme

Umarız Northwind veritabanında Customers tablosundaki bir kaydı güncellemek istiyoruz. Öncelikle, Customers tablosundaki tüm kayıtları listelemek için bir tablo oluşturmamız gerekiyor.

<html>
<body>
<%
set conn=Server.CreateObject(\
conn.Provider=\
conn.Open \

rs.open "SELECT * FROM customers",conn
%>
<h2>List Database</h2>
<table border="1" width="100%">
<tr>
<%
for each x in rs.Fields
  response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<% do until rs.EOF %>
<tr>
<form method=\
<%
for each x in rs.Fields
  if lcase(x.name)="customerid" then>
    <td>
    <input type="submit" name="customerID" value="<%=x.value%>">
    </td>
  <%else%>
    <td><%Response.Write(x.value)%></td>
  <%end if>
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
</table>
</body>
</html>

Eğer kullanıcı "customerID" sütunundaki düğmeye tıklarsa, "demo_update.asp" adlı yeni bir dosya açılır. Bu dosya, veritabanında kayıtların alanlarına dayalı girdi alanlarının kaynak kodunu içerir ve değişiklikleri kaydetmek için bir "Güncelle" düğmesi de içerir:

<html>
<body>
<h2>Update Record</h2>
<%
set conn=Server.CreateObject(\
conn.Provider=\
conn.Open \
cid=Request.Form(\
if Request.form(\
  
  rs.open \
  %>
  <form method=\
  <table>
  <%for each x in rs.Fields%>
  <tr>
  <td><%=x.name%></td>
  <td><input name=\
  <%next%>
  </tr>
  </table>
  <br /><br />
  <input type=\
  </form>
<%
else
  
  
  
  sql=sql & \
  sql=sql & "city='" & Request.Form("city") & "',"
  sql=sql & "postalcode='" & Request.Form("postalcode") & "',"
  sql=sql & "country='" & Request.Form("country") & "'"
  sql=sql & " WHERE customerID='" & cid & "'"
  on error resume next
  conn.Execute sql
  if err<>0 then
    response.write("No update permissions!")
  else 
    response.write("Record " & cid & " was updated!")
  end if 
end if
conn.close
%>
</body>
</html>