asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 2674
ASPCode.it - Store
<< lezione precedente lezione successiva >>

Corso di ASP - Lezione 7: Salvataggio dei Dati di una Form in un Database

Ora che siamo capaci di creare delle form, viene il momento di apprendere come rilevare le informazioni immesse dall'utente e inserirle nel database. Questa lezione introduce la parola chiave INSERT.

Inserimento Dati

La Lezione 6 illustrava un metodo per controllare l'invio di form, piuttosto importante, ma usato raramente. Vediamo un metodo più utilizzato per processare l'invio di una form: la parola chiave INSERT in SQL.

Come potete immaginare, INSERT viene utilizzata per inserire dati in un database. La sintassi per la parola chiave INSERT è la seguente:

INSERT INTO [nome tabella] ([lista campi])
VALUES ([lista valori])

La lista campi è opzionale, ma se non state inserendo dati in tutti i campi nella vostra tabella di destinzione, sarà necessario includere la lista campi. La lista valori deve essere nello stesso ordine della lista campi, a meno che la lista campi venga omessa, nel qual caso, la lista valori deve essere nello stesso ordine in cui sono posizionati i campi nella tabella. Io raccomando di utilizzare sempre una lista campi e una lista valori combinate. Questo assicura che i dati verranno inseriti nei propri campi.

Per questo esempio, utilizzerema la form illustrata in Figura 6.3 nella Lezione 6, con una modifica. Dobbiamo cambiare lo script che processa la form. Individuate la linea <form ...>, ed effettuate i seguenti cambiamenti:

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

Il codice per addstudent.asp è il seguente:

<!--#include file="subConn.inc"-->
<%
sql = "INSERT INTO Studenti (" & _
      "SID"          & _
      ",NOME"       & _
      ",COGNOME"       & _
      ",INDIRIZZO"     & _
      ",CITTà"        & _
      ",STATO"          & _
      ",CAP"     & _
      ") "           & _
      "VALUES (" & _
      "'"  & Request.Form("txtSID")     & "'" & _
      ",'" & Request.Form("txtFName")   & "'" & _
      ",'" & Request.Form("txtLName")   & "'" & _
      ",'" & Request.Form("txtAddress") & "'" & _
      ",'" & Request.Form("txtCity")    & "'" & _
      ",'" & Request.Form("txtST")      & "'" & _
      ","  & Request.Form("txtZipcode") & ")"
openCN
cn.Execute(sql)
closeCN
%>

Rilevamento degli Errori

Ora, i dati vengono raccolti e aggiunti alla tabella Studenti. Vi è però un problema con questo script: non c'è un rilevamento degli errori. Cosa succede se proviamo ad immettere uno studente per due volte? Siccome ID Studente è il campo chiave per Studenti, ogni volta che viene immesso un nuovo studente con lo stesso ID Studente si verificherà un errore. Il nostro obiettivo è di rilevare i valori chiave duplicati prima di inserire il record. L'illustrazione 7.1 contiene il nuovo script che rileva gli ID Studente duplicati:

Esempio 7.1

<!--#include file="adovbs.inc"-->
<!--#include file="subConn.inc"-->
<%
'memorizza SID in una variabile in quanto esso verrà
'   utilizzato più volte.

sid = Request.Form("txtSID")

OpenCN

sql = "SELECT SID FROM Studenti " & _
      "WHERE SID='" & sid & "'"

' conta il numero di record restituiti
rs.Open sql, cn, adOpenKeyset, adLockReadOnly
  found=rs.RecordCount
rs.Close

' determina il prossimo passaggio:
' se viene restituito 1 record allora
'   reindirizza alla schermata di immissione dati
' Altrimenti inserisci il record.

if found = 1 then
   session("msg")="Studente già esistente."
   nextpage= "frmStudent.asp"
else
   ' Ora realizziamo la stringa SQL
   sql = "INSERT INTO Studenti (" & _
         "SID"          & _
         ",NOME"       & _
         ",COGNOME"       & _
         ",INDIRIZZO"     &_
         ",CITTà"       & _
         ",STATO"          & _
         ",CAP"     & _
         ") "           & _
         "VALUES (" & _
         "'"  & sid     & "'" & _
         ",'" & Request.Form("txtFName")   & "'" & _
         ",'" & Request.Form("txtLName")   & "'" & _
         ",'" & Request.Form("txtAddress") & "'" & _
         ",'" & Request.Form("txtCity")    & "'" & _
         ",'" & Request.Form("txtST")      & "'" & _
         ","  & Request.Form("txtZipcode") & ")"

   ' Poi selezioniamo l'oggetto connection,
   ' eseguiamo la query e chiudiamo la connessione.

   cn.Execute(sql)
   closeCN
   session("msg")="Record Aggiunto."
   nextpage="frmStudent.asp"
end if

' Quando lo script ha terminato il processamento,
' ritorna alla schermata di immissione dati.

Response.Redirect nextpage
%>

Applicate ciò che avete appreso.

Usando la form e lo script che avete creato nella Lezione 6, modificate lo script in modo da poter inserire il record nel database.

<< lezione precedente lezione successiva >>


Utenti connessi: 2674