Datagrid, Datareader e databinding con ASP.NET e ADO.NET

2 pagine in totale: [1] 2 Avanti >>

Creare dei form in maniera dinamica tramite database è un'ottima soluzione per gestire eventuali modifiche dei contenuti, aggiornamenti, ed avere un maggior controllo dei documenti e con ASP.NET tutto ciò è reso ancora più semplice.

In quest'articolo vedremo come popolare una drop down list e mostrare a schermo nella stessa pagina il risultato della selezione effettuata dall'utente, utilizzando gli oggetti Datagrid e Datareader di ASP.NET e ADO.NET, ed utilizzando la funzionalità di databinding (ossia di mappatura di una fonte dati su un oggetto).

Il progetto

Immaginiamo di dover gestire una piccola biblioteca online e creare una sezione in cui un utente possa vedere le opere relative ad un certo autore. Lo schema che dovremo utilizzare a grandi linee sarà quello mostrato in figura:

Immagine

Il database

In questo esempio verrà utilizzato un database access2000 (autori.mdb), che trovate contenuto nell'allegato.
Ad ogni modo, la sua struttura è la seguente:

tblAutori

AutoreIDcontatore, primary key
nometesto

tblOpere
AutoreIDnumerico
Operatest
Descrizionememo

La cosa fondamentale da notare è che il campo AutoreID della tabella tblOpere è una chiave esterna di AutoreID della tabella tblAutori, la quale funge infatti da tabella di ricerca; in questo modo attribuiremo un identificatore, un numero, a ciascuna opera, che così verrà "etichettata" come appartenente a quel determinato autore. Ogni autore infatti avrà il suo ID univoco.

Dopo aver creato e inserito i dati nelle nostre tabelle, dovremo metterne in relazione le due colonne AutoreID attraverso un diagramma relazioni.

Creiamo e popoliamo la dropdownlist

Con il prezzo di codice seguente, andremo a creare la dropdownlist ed utilizzando i datareader di ADO.NET, estrarremo i valori dal database per farli mostrare a video.

<html>
<head>
<title>Dropdownlist</title>

<!--
  attraverso queste due direttive importiamo le librerie che ci serviranno per
  effettuare le connessioni con Access2000
-->

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

<script language="VB" runat="server">
Sub Page_Load(sender as Object, e as EventArgs)

'la proprietà IsPostBack del gestore di eventi (handler) Page_Load è impostata
'a true se la pagina è stata ricaricata, ad esempio attraverso un pulsante submit
'di un form. Questa è una proprietà molto utile per gestire i form ed eseguire routine
'di verifica.
If Not Page.IsPostBack then

    'connessione al database
  Dim strConn as string ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("autori.mdb")
  Dim objConn as New OleDbConnection(strConn)
 
  'apro l`oggetto objConn
  objConn.Open()

  'imposto la query sql e inizializzo l`istanza dell`oggetto OleDbCommand
  Dim strSQL as String = "SELECT * FROM tblAutori"
  Dim objCommand as New OleDbCommand(strSQL, objConn)

  'Creo/Popolo il DataReader e chiudo la connessione
  'un DataReader in ADO.NET non è altro che un
  'RecordSet aperto con un cursore forward-only
  Dim objDataReader as OleDbDataReaderv
  objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
 
  'Databind dei dati alla drop down list;
  'con questo metodo colleghiamo i dati
  'al form nel codice html
  lstAutori.DataSource = objDataReader
  lstAutori.DataBind()

end if
End Sub
</script>

</head>
<body bgcolor="#FFFFFF" text="#000000">
<h4>Scegli l'autore</h4>

<!--
  attraverso l'attributo DataTextField specifichiamo cosa verrà visualizzato nel menu, mentre
  attraverso DataValueField la value di ciascuna option; questi due valori corrispondono ai
  nomi delle colonne. L'attributo Rows specifica invece il numero di option visibili al
  caricamento della pagina. Da notare che per default vengono mostrate tutte le opzioni.
-->  

<form runat="Server">
<asp:listbox id="lstAutori" runat="server" Rows="1"
  DataTextField="nome" DataValueField="autoreID" />

<!-- in questo spazio aggiungeremo il pulsante -->

</form>

<!-- in questo la datagrid -->

</body>
</html>

In questo modo abbiamo popolato il nostro form utilizzando i dati presenti nella tabella tblAutori, e possiamo procedere alla fase successiva.

2 pagine in totale: [1] 2 Avanti >>

Attenzione: Questo articolo contiene un allegato

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC