> > Articoli
> > DataBase
Visualizzare i record di un database con ASP.NET
La prima cosa a cui si pensa quando si parla di database e ASP è probabilmente la visualizzazione dei record contenuti nelle tabelle che costituiscono il database stesso. In questo articolo vedremo come estrarre record da un database e visualizzarli sul browser con ASP.NET.
Il DataBase
La prima cosa da fare è creare un semplice database adatto all'esempio di questo articolo.
Utilizzando Access 2000 o 97, creiamo un database vuoto e chimiamolo
clienti.mdb. Creiamo poi la tabella
clienti tramite la
Visualizzazione Struttura; la tabella conterrà i seguenti campi:
- ID: la chiave primaria della tabella, di tipo contatore
- NOME: campo di tipo testo
- COGNOME: campo di tipo testo
- ANNI: campo di tipo numerico
Volendo, è possibile scaricare il database di esempio già pronto
cliccando qui.
Plug-In
Dalla versione 2.6 in poi di MDAC (Microsoft Data Access Component) non sono più presenti i componenti JET. In questo caso sono però necessari (per collegarsi a un database tramite ASP.NET).
L'upgrade è scaricabile gratuitamente dal sito della microsoft: Jet 4.0 Service Pack.
La pagina clienti.aspx
Veniamo ora allo script vero e proprio che ci consentirà di estrarre i dati contenuti nel database che abbiamo precedentemente creato e di visualizzarli in forma tabellare sul browser.
ASP.NET mette a disposizione controlli "preconfezionati", come ad esempio i DataGrid, che consentono di risparmiare molto tempo nella implementazione delle strutture in cui i dati vengono visualizzati nel browser. Per questo primo approccio ai database con ASP.NET ho però ritenuto opportuno utilizzare il metodo tradizionale, creando la tabella de novo; in futuro analizzeremo anche gli aspetti legati ai DataGrid e al DataBinding.
Ecco il listato di clienti.aspx; il codice è ampiamente commentato tra le righe:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<script language=C# runat=server>
void Page_Load(Object sender, EventArgs e)
{
//Componiamo la stringa di connessione
String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("clienti.mdb");
//Creiamo l'oggetto cn di tipo OleDbConnection
//passando la stringa di connessione al costruttore
OleDbConnection cn = new OleDbConnection(ConnString);
//Apriamo la connessione
cn.Open();
//Componiamo la stringa di interrogazione al database
String sql = "SELECT NOME, COGNOME, ANNI FROM clienti";
//Creiamo l'oggetto cmd di tipo OleDbCommand
//passando la sql e la connessione al costruttore dell'oggetto
OleDbCommand cmd = new OleDbCommand(sql, cn);
//Creiamo un oggetto di tipo OleDbDataReader
//Esso è assimilabile a un RecordSet con cursore di tipo forward-only in ASP tradizionale
OleDbDataReader rdr = cmd.ExecuteReader();
//Intestazione pagina HTML
Response.Write("<html><head><title>Visualizzare i record di un DataBase con ASP.NET</title></head><body>");
//Iniziamo a costruire la tabella che conterrà i dati della query
Response.Write("<table border=1 cellspacing=1 align=center>");
Response.Write("<tr><th>NOME</th><th>COGNOME</th><th>ANNI</th></tr>");
//Visualizziamo i record del DataReader appena creato
while(rdr.Read()){
Response.Write("<tr>");
Response.Write("<td>" + rdr["NOME"] + "</td>");
Response.Write("<td>" + rdr["COGNOME"] + "</td>");
Response.Write("<td>" + rdr["ANNI"] + "</td>");
Response.Write("</tr>");
}
//Completiamo il codice HTML della tabella
Response.Write("</table>");
//Completiamo la pagina HTML
Response.Write("</body></html>");
//Chiudiamo il DataReader
rdr.Close();
//Chiudiamo la connessione al database
cn.Close();
}
</script>
Nel codice appena illustrato è stato utilizzato, come linguaggio di programmazione, il C#. Per i nostalgici di VBScript, vediamo ora la stessa pagina implementata con VB.NET:
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.OleDb"%>
<script language=vb runat=server>
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim cn As OleDbConnection
Dim cmd As OleDbCommand
Dim rdr As OleDbDataReader
Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source="&Server.MapPath("clienti.mdb")
cn = New OleDbConnection(ConnString)
cn.Open()
Dim sql As String = "SELECT NOME, COGNOME, ANNI FROM clienti"
cmd = New OleDbCommand(sql, cn)
rdr = cmd.ExecuteReader()
Response.Write("<html><head><title>Visualizzare i record di un DataBase con ASP.NET</title></head><body>")
Response.Write("<table border=1 cellspacing=1 align=center>")
Response.Write("<tr><th>NOME</th><th>COGNOME</th><th>ANNI</th></tr>")
While (rdr.Read())
Response.Write("<tr>")
Response.Write("<td>"&rdr("NOME")&"</td>")
Response.Write("<td>"&rdr("COGNOME")&"</td>")
Response.Write("<td>"&rdr("ANNI")&"</td>")
Response.Write("</tr>")
End While
Response.Write("</table>")
Response.Write("</body></html>")
rdr.Close()
cn.Close()
End Sub
</script>