Lezione 17: Modifica e Aggiornamento dei Dati di una Form

Una funzione molto utilizzata delle Active Server Pages è l'abilità di creare, cancellare, recuperare e aggiornare informazioni all'interno dei databse. In questo corso utilizzeremo database di tipo Microsoft Access come sorgente di dati, perciò sarà importante che comprendiate alcuni fondamenti sui database.

Fausto Marinsalta

 

Form

Qui abbiamo una versione modificata della form utilizzata nella Lezione 6, riempita con il primo record del nostro database. Dovreste notare che il campo Studente ID non è presente in questa form. Poichè Studente ID è il valore chiave nel nostro database, l'utente non dovrebbe avere la possibilità di modificare tale valore. La tabella Valutazioni fa riferimento a Studente ID, quindi se noi cambiamo Studente ID nella tabella Studenti, dobbiamo cambiarlo anche nella tabella Valutazioni. Inviamo la form a update.asp. La form modificata è presentata qui sotto:

 

Figura 9.1 – Form per la modifica dei dati.

Ora necessitiamo anche di indicare alla form dove inviare i dati cambiando le proprietà <form>. Invieremo la form alla pagina update.asp. Così, la form è definita come segue:

 

<form action="update.asp" method="post">

 

Al ricevimento, in update.asp, è necessario raccogliere i nostri dati e utilizzare una query update per aggiornare il record nel nostro database. Il codice seguente rappresenta la query di aggiornamento che utilizzeremo:

Listato 9.1 – Query di aggiornamento.

sql="UPDATE Studenti SET " & _

     "NOME='" & Request("txtfname") & "'," & _

     "COGNOME='" & Request("txtlname") & "'," & _

     "INDIRIZZO='" & Request("txtaddress") & "'," & _

     "CITTà='" & Request("txtcity") & "'," & _

     "STATO='" & Request("txtst") & "'," & _

     "CAP=" & Request("txtzipcode") & " " & _

     "WHERE SID='" & Request("txtsid")

 

Una volta che abbiamo costruito la nostra query, eseguiamola e il record verrà aggiornato.

Listato 9.2 - FrmUpdate.asp

<%

sql = "SELECT * FROM Studenti"

openCN

rs.Open sql, cn

%>

 

<form method="post" action="update.asp">

<input type="hidden" name="txtsid" value=" <%=rs("SID")%> ">

<table border="1" bgcolor="#C0C0C0" bordercolorlight="#FFFFFF">

<tr>

    <td>

       <b>Informazioni Studente</b>

    </td>

</tr>

<tr>

    <td>

    <table border="0" cellspacing="1" cellpadding="1">

    <tr>

    <td>

       <font size="2">Nome</font>

    </td>

    <td colspan="2">

       <font size="2">Cognome</font>

    </td>

    </tr>

    <tr>

    <td>

       <input type="text" size="20" value=" <%=rs("NOME")%> "

        name="txtfname">

    </td>

    <td colspan="2">

       <input type="text" size="20" value=" <%=rs("COGNOME")%> "

        name="txtlname">

    </td>

    </tr>

    <tr>

    <td>

       <font size="2">Indirizzo</font>

    </td>

    </tr>

    <tr>

    <td colspan="3">

       <input type="text" size="40" value=" <%=rs("INDIRIZZO")%> "

        name="txtaddress"></td>

    </tr>

    <tr>

    <td>

       <font size="2">Città</font>

    </td>

    <td>

       <font size="2">ST</font>

    </td>

    <td>

       <font size="2">CAP</font>

    </td>

    </tr>

    <tr>

    <td>

       <input type="txttext" size="20" value=" <%=rs("CITTà")%> "

        name="txtcity">

    </td>

    <td>

       <input type="txttext" size="2" value=" <%=rs("STATO")%> "

        name="txtst">

    </td>

    <td>

       <input type="txttext" size="10" value=" <%=rs("CAP")%> "

        name="txtzipcode">

    </td>

    </tr>

    </table>

    </td>

</tr>

<tr>

    <td>

    <table cellpadding="0" cellspacing="0" width="100%" border="0">

    <tr>

       <td align="left">

          <input type="reset" name="btnClear" value="Clear">

       </td>

       <td align="right">

          <input type="submit" name="btnSubmit" value="Submit">

       </td>

    </tr>

    </table>

    </td>

</tr>

</table>

</form>

Listato 9.3 – Update.asp

<!--#include virtual="/includes/adovbs.inc"-->

<!--#include virtual="/includes/subConn.inc"-->

<%

sid=Request("txtsid")

nome=Request("txtfname")

cognome=Request("txtlname")

indirizzo=Request("txtaddress")

citta=Request("txtcity")

st=Request("txtst")

cap=Request("txtzipcode")

 

OpenCN

 

sql="UPDATE Studenti SET " & _

     "SID='" & sid & "', " & _

     "NOME='" & nome & "', " & _

     "COGNOME='" & cognome & "', " & _

     "INDIRIZZO='" & indirizzo & "', " & _

     "CITTà='" & citta & "', " & _

     "STATO='" & st & "', " & _

     "CAP=" & cap & " " & _

     "WHERE sid='" & SID & "'"

 

cn.Execute(sql)

closeCN

%>

<html>

 

<head>

<title>Aggiornamento Completato</title>

</head>

 

<body>

<h1>Aggiornamento Completato.</h1>

</body>

</html>

Applicate ciò che avete appreso

Usando la form costruita nella Lezione 14, riempitela con le valutazioni per lo Studente ID 00000001. Realizzate poi uno script per aggiornare le valutazioni.