asp - asp.net - aspcode.it

COMMUNITY - Login
 Username:
 
 Password:
 
Voglio registrarmi!
Password dimenticata?
 Utenti on-line: 0
 Ospiti on-line: 5899
ASPCode.it - Store

  > > Articoli

Visualizzare i record di un database con ASP.NET

Data di pubblicazione: 19/03/2002        Voto della community: 4,07 (Votanti: 19)


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>




Utenti connessi: 5899