La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Accesso ai dati Elaborazione di Franco Grivet Chin.

Presentazioni simili


Presentazione sul tema: "1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Accesso ai dati Elaborazione di Franco Grivet Chin."— Transcript della presentazione:

1 1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Accesso ai dati Elaborazione di Franco Grivet Chin

2 2 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Approccio dichiarativo VS approccio programmatico La tecnologia ASP.net ha proposto da subito (2.0) un approccio dichiarativo (trascinamento di oggetti sulla pagina asp.net) rispetto ad un approccio programmatico (codifica allinterno di una classe della connessione, esecuzione, etc.) e per questo ha predisposto un insieme di oggetti: -Data source -Data consumer Tali oggetti nel corso delle varie versioni ( ) sono stati migliorati e sono stati creati nuovi oggetti

3 3 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controlli data source La piattaforma asp.net mette a disposizione molti controlli data source per connettersi a varie sorgenti di dati: Site Map Data Source (per accedere ad un file web.sitemap) XmlDataSource (per accedere ad un file xml) AccessDataSource (per accedere ad un database access) SqlDataSource (per accedere ad un dabase Sql server o altri db relazionali quali Oracle, etc.) Object Data Source (per accedere a una classe mappata su db) LinqDataSource(NET Framework 3.5 per accedere a basi dati via tecnologia Linq) Entity data source(NET Framework 4 per accedere ad un classe entità, Entity Framework) I controlli data source rappresentano loggetto che permette la comunicazione tra la sorgente vera e propria (file, database, etc,) ed un consumatore di dati (gridview, DetailView, etc.)

4 4 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controlli data source Site Map Data Source (per accedere ad un file web.sitemap) Permette di creare un oggetto data source che legge un file sitemap.map che può poi essere utilizzato da consumatori come il menu, il treeview o il sitemappath (bread crumb) XmlDataSource (per accedere ad un file xml) Permette di leggere un file xml e di definire la regola di parsificazione, ad esempio la lettura di un rss

5 5 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Data Source e RSS Molti dati vengono spesso esposti sotto forma di XML (Web service, RSS, etc). Per poter accedere a questi dati si usa ovviamente un XML Data Source Un documento RSS è un file XML che contiene un certo numero di elementi (item) che rappresentano notizie. Gli elementi sono contenuti dal tag che, oltre ad essi contiene 3 elementi obbligatori, e. Esempio :

6 6 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controlli data source XmlDataSource Lattributo XPath definisce la stringa di ricerca degli elementi a livello XML. Loggetto XPath conterrà poi i valori legati ad ogni nodo figlio, accessibile tramite la sintassi Ad esempio Esempio di XML RSS Festa della Liberazione Martedì 24 e mercoledì 25 della-liberazione-marted%C3%AC-24-e-mercoled%C3%AC-25 <p>La Comunità montana Valli di Lanzo, Ceronda e Casternone, la Città di Lanzo, …..

7 7 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Data Source e RSS Il feed può contenere anche altri elementi come,.

8 8 Titolo Presentazione / Data / Confidenziale / Elaborazione di... XML Data Source e RSS Occorre poi definire allinterno del DataList o del componente che consumerà lXMLDataSource come esporre i dati, attraverso la sintassi: '>Link

9 9 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Database e Visual Studio Web Developer Con linstallazione standard di VWD viene installato anche SQL Server 2005 (2008) Express Edition E possibile creare allinterno di VWD database Sql Server memorizzati allinterno della cartella dellapplicazione in formato MDF Per creare un nuovo database: click con il dx sulla cartella AppData aggiungi nuovo elemento database Per aggiungere un database esistente: click con il dx sulla cartella AppData aggiungi elemento esistente Si può accedere alla finestra di Database Explorer dove è possibile creare tabelle, Store procedure, viste, etc, direttamente allinterno dello strumento (click con il dx……)

10 10 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Accesso via codice È possibile scrivere il codice per l'accesso ai dati utilizzando le classi dello spazio dei nomi System.Data, comunemente denominato ADO.NET, e dello spazio dei nomi System.Xml. Tale approccio veniva normalmente utilizzato nelle versioni precedenti di ASP.NET.System.DataSystem.Xml strSQLconnection string = Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integr ated Security=True;User Instance=True SqlConnection conn = new SqlConnection (strSQLconnection); SqlCommand SqlCommand = new SqlCommand ("SELECT * FROM tabella1", conn); conn.open (); SqlDataReader reader = SqlCommand.ExecuteReader (); GridView1.DataSource reader =; GridView1.DataBind ();

11 11 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Accesso ai dati dichiarativo ASP.NET, tuttavia, consente anche di eseguire l'associazione dati in modo dichiarativo. Per quanto riguarda i più comuni scenari relativi ai dati, inclusi quelli riportati di seguito, tale operazione non richiede la scrittura di codice: In ASP.NET sono disponibili vari tipi di controlli server che partecipano al modello di associazione dati dichiarativo, quali i controlli origine dati, i controlli con associazione a dati. Tali controlli gestiscono le attività sottostanti richieste dal modello Web privo di stato per visualizzare e aggiornare i dati nelle pagine Web ASP.NET.

12 12 Titolo Presentazione / Data / Confidenziale / Elaborazione di... SQL Server Data Source -Per inserire un controllo di questo tipo basta trascinarlo dalla casella degli strumenti (sezione dati) oppure viene automaticamente inserito quando si trascina una tabella da database Lattributo Connection String definisce a stringa di connessione che spesso è memorizzata nel file web.config (la sintassi per recuperarla è <%$..... )

13 13 Titolo Presentazione / Data / Confidenziale / Elaborazione di... SQL Server Data Source Il controllo Data Source si configura facilmente attraverso un apposito wizard, che permette di configurare la connessione e definire la stringa SQL di select relativa. E possibile impostare delle query parametriche agendo sulla sezione di query, cliccando sul pulsante Where e definendo la provenienza del parametro di riferimento (query string, control, etc. ) sempre utilizzando il wizard

14 14 Titolo Presentazione / Data / Confidenziale / Elaborazione di... SQL Server Data Source Inoltre è possibile aggiungere anche delle query legate allinserimento, modifica e cancellazione dei dati. Si accede dal pulsante avanzate dellautocomposizione ed inoltre solo se la tabella ha un id chiave primaria Nel wizard clicchiamo "Avanzate...". Appare una nuova finestra.

15 15 Titolo Presentazione / Data / Confidenziale / Elaborazione di... SQL Server Data Source SelectCommand="SELECT [id], [nome], [descrizione], [prezzo], [tipologia] FROM [veicoli] WHERE ([tipologia] LIKE '%' + '%')" ConflictDetection="CompareAllValues" DeleteCommand="DELETE FROM [veicoli] WHERE [id] AND (([nome] OR ([nome] IS NULL IS NULL)) AND (([descrizione] OR ([descrizione] IS NULL IS NULL)) " InsertCommand="INSERT INTO [veicoli] ([nome], [descrizione], [prezzo], @tipologia)" OldValuesParameterFormatString="original_{0}" UpdateCommand="UPDATE [veicoli] SET [nome] [descrizione] [prezzo] [tipologia] WHERE [id] AND (([nome] OR ([nome] IS NULL Se visualizziamo il codice in origine troveremo la presenza degli attributi: DeleteCommand InserCommand UpdateCommand con i relativi parametri. L'UpdateCommand ad esempio controlla se ci sono stati aggiornamenti al record originale e l'aggiornamento avviene solo se ciò non è avvenuto. Per tenere traccia dei record originali, li immagazzina con nome preceduto dalla stringa "original_". Notiamo inoltre la presenza dell'attributo ConflictDetection che serve ad implementare la strategia "First-One Wins" (il primo che arriva vince) per la risoluzione di eventuali conflitti nell'accesso ai dati.

16 16 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controlli consumatori di dati Anche in questo caso esistono controlli facenti parte di Asp.net 2.0, 3.5 e GridView DataList DetailsView FormView Repeater 3.5 List View (controllo evoluzione di frm view w details view) Data Pager (controllo per la paginazione usato con List View) 4.0 QueryExtender( utilizzato solo per filtrare i dati restituiti dai controlli EntityDataSource o LinqDataSource) Chart Control

17 17 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview E un controllo molto potente per consumare dati che utilizza un data source Il controllo GridView ha sostituito il DataGrid della precedente versione di ASP.NET. Trascinandolo dalla toolbox e inserendolo in una pagina.aspx avremo la finestra:

18 18 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Se nella gestione del data source abbiamo scelto avanzate e impostato anche la sezione di inserimeno e modifica dei dati la finestra sarà invece visualizzata in questo modo

19 19 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Come si vede per abilitare caratteristiche avanzate quali paginazione e ordinamento è sufficiente aggiungere degli attributi al controllo quali AllowPaging="True" AllowSorting="True

20 20 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Di default le colonne vengono legate con un controllo di tipo

21 21 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview '> Usando i template si possono configurare in modo opportuno le differenti modalità di visualizzazione, editing e inserimento dei campi. Ad esempio legare un menù a discesa in fase di modifica o inserimento.

22 22 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Possono essere aggiunte delle colonne non legate ai dati o in aggiunta a quelle generate dallo strumento, utilizzando la sintassi in cui si possono invocare metodi come Eval(nomecampo) o Bind(nomecampo)

23 23 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Campi Template '/> '/> '/>

24 24 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Gridview Allinterno degli item tempate si possono usare due espressioni di binding molto comuni quando si utilizzano controlli collegati a dati e sono contraddistinte dal fatto che sono sempre incluse tra i tag. Il metodo Eval() esiste sin dalla versione 1.0 di ASP.NET (prima della 2.0 era conosciuta come DataBinder.Eval()) mentre Bind() è stato introdotto con la 2.0. Entrambi hanno la funzione di estrarre il valore della proprietà specificata dal DataSource sottostante durante un'operazione di binding. La differenza tra le due funzioni è che, mentre Eval() può solo leggere un valore Bind() può anche modificarlo; cioè è in grado di aggiornare la proprietà a cui si riferisce con il valore specificato nel controllo in cui è utilizzato. Nel nostro esempio Bind() è utilizzato nel template di inserimento di un nuovo record, consentendo di inserire il valore della TextBox in una collection quando la TextBox viene letta.

25 25 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Alternativamente si può operare come sempre allinterno della finestra delle proprietà

26 26 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo Gridview Se vogliamo personalizzare i numeri di pagina o aggiungere dei simboli possiamo agire ad esempio nelle proprietà raggruppate sotto la voce "PagerSettings", nel gruppo "Paging" della finestra Proprietà

27 27 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Controllo DetailsView Il controllo DetailsView permette oltre alla modifica e alla cancellazione anche di effettuare linserimento. Spesso si utilizza congiuntamente alla GridViev per un risultato Master/Detail Per tale operazione occorrono due data source (uno per il GridView e uno per il DetailsView) i due controlli e gestire la selezione del grid view affinche serva da parametro per la query del data sourse del detailview

28 28 Titolo Presentazione / Data / Confidenziale / Elaborazione di... Gestione eventi e eccezioni E possibile gestire gli eventi legati ai vari elementi sia di tipi sorgente dati che consumatore. Per poter gestire un evento è possibile operare in diversi modi: 1.Fare doppio click sul componente e verrà creata la procedura legata ad un evento standard (il più probabile su quelelemento) 2.Selezionare dalla finestra di proprietà lelenco degli eventi collegabili a quel componente ( elenco con i fulmini), scrivere la relativa procedura e fare invio 3. andare in origine nel tag del componente, scrivere on…e vedere i tipi di eventi disponibili e scrivere il nome della procedura da generare. Anndare poi nella parte.cs e scrivere la procedura legata allaevento con la cosueta firma Esempio: gestione dellevento onRowUpdated su un GridView protected void onRowUpdated(object sender, GridViewUpdatedEventArgs e) { if (e.Exception != null) { LabelRisultatoExcDB.Text="Il record non è stato aggiornato!"; e.ExceptionHandled = true; } else LabelRisultatoExcDB.Text="Record aggiornato con successo!"; }

29 29 Titolo Presentazione / Data / Confidenziale / Elaborazione di...


Scaricare ppt "1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Accesso ai dati Elaborazione di Franco Grivet Chin."

Presentazioni simili


Annunci Google