- Leggere dati da un database - |
|||
COSA SERVE PER QUESTO TUTORIAL | |||
Download | Chiedi sul FORUM | Glossario | Conoscenza dell'HTML - un server che supporti la tecnologia ASP .NET - facoltativamente un editor provvisto di intellisense (es. Macromedia Dreamweaver) | ||
La query SQL SELECT per leggere dati da un database | |||
SELECT Un semplice esempio per spiegare come leggere dati da un database Access.
In questo tutorial vedremo come ottenere i dati da un database di Access
utilizzando Microsoft Jet e come utilizzarli attraverso un semplice
programma che stampa l'intero contenuto del database. <%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Oledb" %>2) Ora dobbiamo specificare il database a cui vogliamo accedere attraverso Jet (il fornitore di accesso ai database) creando un oggetto OleDbConnection: <script language="VB" runat="server"> Dim objConn As New OleDbConnection _ ("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source =" & Server.MapPath("db.mdb"))3) Per ottenere i dati presenti in un database si utilizza l'oggetto OleDbDataAdapter (adattore di dati) con parametri la stringa SQL (Structured Query Language) e l'oggetto OleDbConnection appena creato. La stringa SQL comunica a Jet che filtri deve utilizzare nella restituzione dei dati. La parola chiave per restituire dati è SELECT. La sintassi è: SELECT NomeColonna1, NomeColonna2 FROM NomeTabella NomeColonna1 e 2 sono i nomi dei campi che si desidera
richiedere, in alternativa è possibile richiedere tutte le colonne
utilizzando l'asterisco (*). È possibile inoltre specificare una
clausola WHERE che permetterebbe di selezionare solo alcuni dati secondo
particolari criteri, per ulteriori informazioni
clicca qui. Per semplicità noi
non useremo alcun filtro nella creazione dell'oggetto OleDbDataAdapter,
quindi dovremo scrivere: Dim objCmd As New OleDbDataAdapter _ ("SELECT * FROM nometabella1", objConn)4) Adesso dichiariamo un Dataset, un oggetto che viene utilizzato per contenere i dati presi dal database: Dim ds As New DataSet()Il DataSet contiene diversi oggetti DataTable che corrispondono alle tabelle richieste che vengono identificati con i loro nomi o con dei numeri; per accedere a una singola cella si utilizza la proprietà Rows specificando nella prima parentesi il numero della riga e nella seconda il numero della colonna (es. ds.Tables(0).Rows(2)(1)). 5) Bene ora abbiamo completato la parte dichiarativa, passiamo alla Sub Page_Load: Sub Page_Load(obj as Object, e as EventArgs)6) Finalmente possiamo riempire il DataSet con i dati utilizzando la funzione Fill dell'oggetto objCmd precedentemente creato: ObjCmd.Fill(ds)7) Infine col codice che segue verranno stampati tutti i contenuti delle varie colonne grazie a tre cicli For, il primo lista tutte le tabelle, il secondo tutte le colonne della tabella e il terzo stampa il contenuto delle celle di quella colonna: Dim C1 As Integer Dim C2 As Integer Dim C3 As Integer For C1 = 0 To ds.Tables.Count - 1 Response.Write("tabella " & C1 & "<br>") For C2 = 0 To ds.Tables(C1).Columns.Count - 1 Response.Write("--" & ds.Tables(C1).Columns(C2).ColumnName & "<br>") For C3 = 0 To ds.Tables(C1).Rows.Count - 1 Response.Write("----" & ds.Tables(C1).Rows(C3)(C2) & "<br>") Next Next Next8) Ecco come dovrebbe apparire il vostro file .aspx: <%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.Oledb" %> <script language="VB" runat="server"> Dim objConn As New OleDbConnection _ ("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source =" & Server.MapPath("db.mdb")) Dim objCmd As New OleDbDataAdapter _ ("SELECT * FROM nometabella1", objConn) Dim ds As New Dataset() Sub Page_Load(obj as Object, e as EventArgs) ObjCmd.Fill(ds) Dim C1 As Integer Dim C2 As Integer Dim C3 As Integer For C1 = 0 To ds.Tables.Count - 1 Response.Write("tabella " & C1 & "<br>") For C2 = 0 To ds.Tables(C1).Columns.Count - 1 Response.Write("--" & ds.Tables(C1).Columns(C2).ColumnName & "<br>") For C3 = 0 To ds.Tables(C1).Rows.Count - 1 Response.Write("----" & ds.Tables(C1).Rows(C3)(C2) & "<br>") Next Next Next End Sub </script>
|
|||
<< INDIETRO | by VeNoM00 |