Visualizzare i record di un database Access con Asp.NET

Siti dinamici con ASP.NET
Impara a creare siti ed applicazioni Web con Microsoft .NET

Scritto da Paolo Capitani nella sezione Asp.NET

Introduzione

La prima cosa a cui si pensa quando si parla di database e Asp è probabilmente la visualizzazione dei record contenuti nelle tabelle che lo costituiscono. 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 Access</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>

I più cliccati della sezione Asp.NET

:: Guida base ad Asp.NET (57.290)

:: I Validation Controls di Asp.NET (29.531)

:: Utilizzo delle QueryString con Asp.NET e C Sharp (23.719)

:: Un Guestbook in ASP.NET, Access e ADO (18.818)

:: Inviare email con Asp.NET: il Namespace System.Web.Mail (18.165)

:: Gestione delle News in ASP.NET (13.467)

:: Una Newsletter in ASP.NET (12.100)

:: Inserire dati in un database Access con Asp.NET (11.855)

:: Upload di file in Asp.NET e Javascript (11.531)

:: Risolvere un indirizzo IP ed individuare nome macchina e dominio in Asp.NET (10.107)

IN EVIDENZA
DOWNLOAD