Prof. Pagani Corrado LIVELLO DATA ACCESSCON ADO.NET
ADO.NET ADO.NET è unalibreriacompostadiclassiche permettonodiaccederea servizididata Access in ambientevisual Studio.NET Framework Offreun riccoinsiemedistrumentiper creare applicazioni con gestione persistente di dati su diversimotorididb (SQL Server, Access, Oracle, MySQL) E parte integrante del Framework.NET
DIVERSE TECNOLOGIE DI DATA PROVIDER ADO.NET data providers: SqlClient(System.Data.SqlClient) Si connette ad un DB SQL Server OleDb(System.Data.OleDb) Si connette ad un DB Access Odbc(System.Data.Odbc) Si connette ad un Data Source Namedi sistema che sfrutti un ODBC Driver OracleClient(System.Data.OracleClient) Si connette ad un DB Oracle MySQLClient(MySql.Data.MySqlClient) Installare ADO.NETDriver formysql(connector/net) dal sito http://www.mysql.it/products/connector Aggiungere il riferimento using MySql.Data.MySqlClient;
APPROCCIO CONNESSO E DISCONNESSO Approccio connesso al DB E molto veloce Mantiene la connessione per tutto il tempo della lettura, che avviene sequenzialmente Sconsigliabile per operazioni di modifica Si appggia alla classe DataReader Approccio Disconnesso al DB Piùlento Mantienein memoriaram copiadelletabelledel DB sullaqualiè possibilelavoraresenzamantenerela connesione al DB Si appoggia alla classe DataSet
DATA READER E utilizzato per leggere i dati dal database ed è un'architettura orientata alla connessione di sola lettura sequenziale durante il recupero dei dati dal database. Permette un recupero di dati molto veloce rispetto ad un DataSet. Generalmente utilizzeremo l'oggetto ExecuteReaderper associare i dati ai DataReader. Tiene la connessione aperta finché non si ha finito (non dimenticarsi di chiuderla!). Sconsigliato per operazioni di aggiornamento del DB
DATASET DataSetè un'architettura disconnessa per accesso ad un DB e consiste in una raccolta di DataTablee relazioni tra tabelle. È usato per contenere più tabelle (DataTable) con i relativi dati in memoria dell applicazione. Ogni tabella avrà in memoria: Struttura dei campi della tabella Record compilati primary key, foreign key, vincoli di integrità, relazioni. Progettata per essere indipendente dalla sorgente dati Inoltre offre funzionalità avanzate come il salvataggio dei dati in formato XML e il caricamento di dati XML.
DATA SET E DATA VIEW Classi ed oggetti memorizzati dentro ad un DataSet Un DataView consente di creare viste diverse dei dati memorizzati in un DataTablecon filtri ed ordinamenti specifici. I Data Viewsono spesso usati per il bindingcon controllo grafici quali DataGrid o Repeater.
SERVER EXPLORER La finestra Server Explorer di VisualStudio permette di creare la connessione a DB visualizzare e manipolare tabelle e record delle sorgenti dati Generare le corrette stringhe di connessione
ADDCONNECTION TOSQL SERVER Nome del Server SQL Server Autenticazione Nome del DB Possibilità di testare se la connessione è stata impostata correttamente
ADDCONNECTION TOACCESSDB Nome del Provider Nome e percorso del file Access Eventuale Autenticazione Possibilità di testare se la connessione è stata impostata correttamente
CONNECTION STRING In VisualStudio è possibile salvare le stringhe di connessione nel file di configurazione (web.configo app.config) oppure impostarle come hardcoded direttamente nel codice sorgente. Il salvataggio nel file di configurazione dell'applicazione semplifica la gestione dell'applicazione Se la stringa di connessione richiede modifiche è possibile aggiornarla senza ricompilare l'applicazione. 2 diverse stringhe di connessione: Access e SQL Server
CONNECTION STRING E sempre consigliabile evitare di inserire percorsi assoluti nella cennectionstring, soprattutto se si sta sviluppando una applicazione web Infatti il percorso assoluto sul server potrebbe anche non essere accessibile Può essere consigliabile ricorrere alla variabile DataDirectory che riporta alla cartella App_Datadel progetto <connectionstrings> <add name="connectionpersone connectionstring="provider=microsoft.ace.oledb.12.0; Data Source= DataDirectory \persone.accdb; Persist Security Info=True"/> </connectionstrings>
INTERROGAZIONE DATI CON DATAREADER DB SQL Server Provider SqlClient Leggiamo i record risultato della query SQL in modo sequenziale all interno di un ciclo man mano che leggiamo scriviamo in un controllo testuale (ad esempio un Literal)
DATA ADAPTER I DataAdaptersono un ponte tra DataSete database. Sono utilizzati per leggere i dati dal database e associarli ad un DataSet(o ad un DataTable) in modalità disconnessa. Consentono di chiudere la connessione non appena sia completato il caricamento dei dati, mantenendo tutti i risultati disponibili in memoria Offre funzionalità incorporate per l'aggiornamento dei dati su database. SqlDataAdapter da = new SqlDataAdapter(command); DataSet ds = new DataSet(); da.fill(ds);
INTERROGAZIONE DATI CON DATASET DB SQL Server Provider SqlClient Prendiamo l intero risultato della query SQL in memoria all interno di un DataSet Utilizziamo la prima DataTabledel DataSet come DataSource di un Repeater
VISUALIZZAZIONE DEI DATI PAG.ASPX <form id="form1" runat="server"> <div> <h1> Lettura dati da DataBase SQL Server con Provider ADO.NET SqlClient </h1> <br/> <asp:button ID="btLoadData" runat="server" Text="CARICA DATI CON DATA READER" OnClick="btLoadData_Click" /> <asp:button ID="btLoadDataTable" runat="server" Text="CARICA DATI CON DATA ADAPTER E DATA SET" OnClick="btLoadDataTable_Click" /> <br/> Cerca per nome : <asp:textbox ID="tbCercaNome" runat="server" ></asp:textbox> <br/><hr/><br/> <asp:literal ID="litData" runat="server"></asp:literal> <br/><hr/><br/> <asp:repeater ID="repPersone" runat="server"> <ItemTemplate> Record: <%# Eval("Nome") %> -<%# Eval("Cognome") %> -<%# Eval("Vittorie") %> <br/><hr/></itemtemplate> </asp:repeater> <br/> </div> </form>
INTERROGAZIONE DB ACCESS CON DATAREADER DB Access Provider OleDb Cosa cambia?
INTERROGAZIONE DB ACCESS CON DATASET DB Access Provider OleDb DataSetè una classe generica che non dipende dal Provider Cosa cambia?
CONTROLLO SQLDATASOURCE Il controllo WEBSqlDataSourceutilizza le classi ADO.NETper interagire con qualsiasi database supportato da ADO.NET. L'utilizzo di un controllosqldatasourceconsente di accedere ai dati e di modificarli nella pagina ASP.NETsenza utilizzare direttamente le classi ADO.NETnel code behind. È sufficiente fornire una stringa di connessione per connettersi al database definire le istruzioni SQL o le storedprocedure utilizzate con i dati. Eventuali parametri Il controlloapre automaticamente la connessione al database, esegue l'istruzione SQL, restituisce gli eventuali dati selezionati e chiude la connessione. I dati selezionati sono restituiti in una DataView
CONTROLLO SQLDATASOURCE Nella Pagina ASPX della schermata sottostante è consigliabile settare i parametri di connessione tramite la composizione guidata del controllo Pagina.cs svolge solo l istruzione reppersone.databind(); Setto gli attributi del controllo Gestisco il parametro Prendendolo direttamente dalla text box Imposto direttamente il DataSourcedel repeater! Nel file csdovrò solo eseguire il DataBind!
CREAZIONE DITABELLE
CANCELLAZIONE DITABELLE
INSERIMENTO DIRECORD
AGGIORNAMENTO DIRECORD
CANCELLAZIONE RECORD