Informazioni su Antonio Volpon

Ho un'esperienza di più di 25 anni come consulente User Experience e Project Management, in particolare nei settori fashion e luxury, sport ed editoria. [Profilo]

ASP.NET: DataReader e DataSet – Codice sorgente dell’esempio

Sorgenti: DataReader.aspx – DataSet.aspx – Connessione.ascx

Scarica i sorgenti: aspnet10.zip

Articolo a cui si riferisce il codice: ASP.NET: DataReader e DataSet

DataReader.aspx

  1   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 
  4 <%@ Page Language="VB" Debug="True" %>
  5 
  6 <%@ Import Namespace="System.Data" %>
  7 <%@ Import Namespace="System.Data.OleDb" %>
  8 
  9 <%@ Register TagPrefix="cnn" TagName="connection" Src="connessione.ascx" %>
 10 <%@ Register TagPrefix="ANet" TagName="Footer" Src="includes/footer.ascx"%>
 11 
 12 <!—
 13 # nome: DataReader.aspx
 14 # scritto da: Antonio Volpon
 15 # data creazione: 14 Novembre 2001
 16 # ultima modifica: 14 Novembre 2001
 17 # copyright: Antonio Volpon
 18 —>
 19 
 20 <script language="vb" runat="server">
 21 
 22 Sub Page_Load()
 23 
 24   Dim strSelect As String
 25   Dim objDataSet As New DataSet()
 26   Dim objDataReader As OleDbDataReader
 27   
 28   Dim strTabella As String
 29   
 30   strSelect = "SELECT Titolo,NumeroPagine,Collana FROM Libro WHERE EdizioneAnno = ‘1987’ ORDER BY Titolo"
 31 
 32    Try
 33 
 34     Dim objConnection As New OleDbConnection(ctlConnessione.Access)
 35     
 36     objConnection.Open()
 37 
 38     Dim objCommand As New OleDbCommand(strSelect,objConnection)    
 39 
 40     
 41     objDataReader = objCommand.ExecuteReader()
 42     
 43     While objDataReader.Read
 44       strTabella += "<tr><td>" & objDataReader("Titolo") & "</td><td>" & objDataReader("NumeroPagine") & "</td><td>" & objDataReader("Collana") & "</td></tr>"
 45     End While
 46     
 47     objDataReader.Close()
 48     
 49     objConnection.Close()
 50     
 51    Catch objError As Exception
 52 
 53    risposta.innerHTML = "Errore: " & objError.Message & " " & objError.Source
 54    Exit Sub
 55     
 56    End Try
 57   
 58   risultati.Text = strTabella
 59    
 60 
 61 End Sub
 62 
 63 </script>
 64 
 65 <cnn:connection id="ctlConnessione" runat="server"/>
 66 
 67 <html>
 68 
 69   <head>
 70     <link rel="stylesheet" href="css/aspnet.css" type="text/css">
 71     </link>
 72     <title>DataReader</title>
 73   </head>
 74   
 75   <body>
 76 
 77     <div class="titolo">
 78       DataReader
 79     </div>
 80     
 81     <hr noshade="noshade" size="1" width="100%" />  
 82     
 83     <table border="1" cellspacing="0" cellpadding="3" bordercolor="#C0C0C0">
 84       <tr><td class="txtb">Titolo</td><td class="txtb">Pagine</td><td class="txtb">Collana</td></tr>
 85       <asp:literal id="risultati" runat="server" />
 86     </table>
 87     
 88     <div class="txtb" id="risposta" runat="server"></div>
 89     
 90  <ANet:Footer id="Menu" runat="server" />
 91 
 92   </body>
 93   
 94 </html>

DataSet.aspx

  1   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 
  4 <%@ Page Language="VB" Debug="True" %>
  5 
  6 <%@ Import Namespace="System.Data" %>
  7 <%@ Import Namespace="System.Data.OleDb" %>
  8 
  9 <%@ Register TagPrefix="cnn" TagName="connection" Src="connessione.ascx" %>
 10 <%@ Register TagPrefix="ANet" TagName="Footer" Src="includes/footer.ascx"%>
 11 
 12 <!—
 13 # nome: DataSet.aspx
 14 # scritto da: Antonio Volpon
 15 # data creazione: 12 Novembre 2001
 16 # ultima modifica: 12 Novembre 2001
 17 # copyright: Antonio Volpon
 18 —>
 19 
 20 <script language="vb" runat="server">
 21 
 22 Sub Page_Load()
 23 
 24   Dim strSelect As String
 25   Dim objDataSet As New DataSet()
 26 
 27   strSelect = "SELECT Titolo,NumeroPagine,Collana FROM Libro WHERE EdizioneAnno = ‘1997’ ORDER BY Titolo"
 28 
 29   Dim objConnection As New OleDbConnection(ctlConnessione.Access)
 30     
 31   Dim objDataAdapter As New OleDbDataAdapter(strSelect, objConnection)
 32   
 33   objDataAdapter.Fill(objDataSet,"Libro")
 34 
 35   Dim objDataView As New DataView(objDataSet.Tables("Libro"))
 36   
 37   libri.DataSource = objDataView
 38   libri.DataBind()
 39 
 40 End Sub
 41 
 42 </script>
 43 
 44 <cnn:connection id="ctlConnessione" runat="server"/>
 45 
 46 <html>
 47 
 48   <head>
 49     <link rel="stylesheet" href="css/aspnet.css" type="text/css">
 50     </link>
 51     <title>Data Set</title>
 52   </head>
 53   
 54   <body>
 55     <div class="titolo">
 56       Data Set
 57     </div>
 58     
 59     <hr noshade="true" size="1" width="100%">  
 60     
 61     <asp:datagrid id="libri" runat="server"/>
 62     
 63  <ANet:Footer id="Menu" runat="server" />
 64 
 65   </body>
 66   
 67 </html>

Connessione.ascx

  1 <%@ Control Language="VB" %>
  2 
  3 <script language="VB" runat="server">
  4 
  5 Public ReadOnly Property SQLServer() As String
  6  Get
  7  Return "Provider=SQLOLEDB.1;data source=nomedatasource;initial catalog=Biblioteca;uid=zzz;pwd=xxx;"
  8  End Get
  9 End Property
 10 
 11 Public ReadOnly Property Access() As String
 12  Get
 13  Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\percorso\biblioteca.mdb"
 14  End Get
 15 End Property
 16 
 17 </script>

ASP.NET: DataReader e DataSet


Corso ASP.NET: decima puntata

Esempio funzionante | Sorgente | Scarica il sorgente (zip)

DataReader e DataSet rispondono a due diverse esigenze.

Il DataReader ha ottime prestazioni e viene impirgato quando l’esigenza è di connettersi ai dati in sola lettura e in modalità forward-only

Il DataSet consente invece di eseguire ogni operazione sui dati e di utilizzare efficamente le tecniche di DataBinding ai controlli. Il DataSet è un oggetto di tipo “disconnesso“.

DataReader

Vediamo un esempio di utilizzo.

Viene visualizzata una tabella contenente il titolo, il numero di pagine e la collana di una serie di libri contenuti in un database Access.

L’interrogazione eseguita sul database è decisamente banale: sono estratti i libri la cui edizione risale al 1997 e i dati sono ordinati per titolo del libro.

  6 <%@ Import Namespace="System.Data" %>
  7 <%@ Import Namespace="System.Data.OleDb" %>

In testa al sorgente notiamo la dichiarazione di alcuni namespace: grazie a questi decidiamo quale tipo di DataAdapter utilizzare all’interno del programma. In questo caso stiamo usando i DataAdapter relativi ad una sorgente dati Old Db.

  9 <%@ Register TagPrefix="cnn" TagName="connection" Src="connessione.ascx" %>

È stato realizzato un file esterno di tipo ascx che contiene una proprietà con il percorso del database. Torneremo in un’altra puntata ad occuparci dei file ascx, per il momento quello che è sufficiente sapere è che in questo esempio è usato alla stregua di un file di configurazione.

 34     Dim objConnection As New OleDbConnection(ctlConnessione.Access)
 36     objConnection.Open()

Viene quindi dichiarata una connessione ADO.NET a cui è passata la stringa dichiarata nel file ascx.

 38     Dim objCommand As New OleDbCommand(strSelect,objConnection)    

È adesso il momento di creare un oggetto di tipo Command a cui è passata la connessione e l’operazione da svolgere (ovvero, la selezione dei libri del 1997).

A questo punto viene eseguito il metodo ExecuteReader che restituisce un oggetto DataReader pronto per l’uso.

 41     objDataReader = objCommand.ExecuteReader()

Con il metodo Read sono estratti uno per volta tutti i record del DataReader e viene composta una stringa che rappresenta una riga di una tabella Html.

Da notare come sia stato creato un oggetto di tipo asp:literal: è un segnaposto per la stringa che rappresenta il contenuto della tabella. Con l’istruzione

 58   risultati.Text = strTabella

il tutto viene poi visualizzato all’interno della tabella Html.

DataSet

Vediamo lo stesso esempio applicato ad un oggetto di tipo DataSet. Come dicevamo, non è il caso di utilizzare un DataSet se i dati estratti sono read-only e forward-only. La prossima puntata vedremo un “vero” caso di applicazione di un oggetto DataSet.

 31   Dim objDataAdapter As New OleDbDataAdapter(strSelect, objConnection)

Dopo la connessione, si dichiara un oggetto di tipo DataAdapter al quale è passata l’istruzione di selezione da eseguire.

 33   objDataAdapter.Fill(objDataSet,"Libro")

A questo punto, con il metodo Fill, viene “riempito” il DataSet (che, ricordiamo, è un oggetto disconnesso) con i dati restituiti dalla selezione.

 35   Dim objDataView As New DataView(objDataSet.Tables("Libro"))

È creato poi un oggetto di tipo DataView. Un DataView è una rappresentazione dei dati di un DataSet che consente di ordinarli e filtrarli secondo criteri impostati dall’utente. In questo caso, però, è utilizzato un oggetto DataView per un altro scopo: il Data Binding. Solo un oggetto DataView può essere “agganciato” ad un controllo per automatizzarne la visualizzazione.

 37   libri.DataSource = objDataView
 38   libri.DataBind()

Come si vede, il DataView è associato all’oggetto libri (un DataGrid) e viene poi richiamato il metodo DataBind per effettuare la visualizzazione dei dati, evitando al programmatore la scrittura di codice di gestione.

Il Colore nel Web

Se vi trovate alle prese con il design di un sito, ma il vostro titolo di studio non cade nell’area artistica, avete tra le altre cose bisogno di qualche nozione sull’uso del colore.

In una puntata del corso di web design abbiamo già avuto modo di soffermarci sulle tecniche del colore.

Questo manuale introduce la teoria dei colori (colori addittivi, sottrattivi, primari e secondari, proprietà del colore) per poi passare all’uso del colore nel web.

Si analizzano le differenze cromatiche tra il mondo Windows e Macintosh e la “safe palette“, i 216 colori con (approssimativamente) la stessa resa su tutte le piattaforme.

Sono anche presentati i formati grafici più utilizzati, Gif e Jpeg, e il loro impiego.

Pro

  • breve, ma efficace analisi alla teoria del colore
  • utili consigli sui compromessi della grafica tra Windows e Mac

Contro

  • molte pagine piene di tabelle di palette, ma che possono solo approssimare il colore del monitor

Informazioni

Il Colore nel Web (titolo originale Color for Website) ¤ di Molly E. Holzschlag ¤ pagine 180 ¤ prezzo 35.64 euro ¤ edito da Apogeo (editore originale Rotovision) ¤ pubblicato nel 2001