Iniziamo con questo capitolo una serie di approfondimenti per quanto riguarda il Aspenet , approfondendo alcune delle ultime tecnologie introdotte da Aspnet 3.5. Un DataSet è da considerarsi alla stregua di un piccolo Database Programmato,. Il Qulkae permette di compiere una sieri di operazioni sui dati in elaborazione.. Le tabele appartenenti a un Dataset possono essere messe in relazione anche tra di loro con dei collegamenti definiti relazioni.
Cosa sono i DataSet di Aspnet e come si creano
Le istruzioni per la creazione di un Data Set sono
System.Data.DataSet DS_01 = new DataSet ("Primo DataSet");
mentre per creare un database contenente per esempio nomi utenti e cognomi di dipendenti si fa
DataTable DT_01 = new DataTable ("Utenti");
DS_01.Tables.Add(DT_01);
vediamo adesso invece come popolare i campi della tabella
//Contatore Campo ID
DataColumn DC_ID =
new System.Data.DataColumn ("ID", typeof (int));
DC_ID.AutoIncrement = true;
DC_ID.AllowDBnull = false;
//Nome Utente
DataColumn DC_NOME = new System.Data.
DataColumn("Nome", typeof(string);
DC_ID.AllowDBNull=false;
DT_01.Columns.Add(DC_NOME);
//Cognome Utente
DataColumn DC_COGNOME = new System.Data.
DataColumn("Cognome", typeof(string);
DC_ID.AllowDBNull=false;
DT_01.Columns.Add(DC_COGNOME);
Come si vede abbiamo definito la prima colonna autoincrementante con il campo id, questa vuol dire che ogni qual volta si inserisce un valore questo finisce per incrementare a sua volta quel determinato campo da solo.
Da notare anche che al termine di ogni colonna abbiamo inserito la voce
DT_01.Columns.Add(<nomecolonna>);
Le tabelle del database sono state create adesso occorre anche popolarle e questo lo facciamo ricorrendo ai DataRow nel seguente modo
DataRow u1 = new DataRow();
u1 = DT_01.NewRow();
E per aggiungere il primo utente faremo semplicemente
u1["Nome"] ="Alessio";
u1["Cognome"] = "Marziali"M
DT_01.Rows.Add(u1);
Supponiamo adesso di avere la necessità di avere due o piu’ tabelle e doverle mettere in qualche modo in collegamenteo fra di loro , in questo caso dovremo fare
DataTable DT_02 = new DataTable ("Jobs");
DS_02.Tables.Add(DT_02);
//introduciamo adesso il solito campo contatore
DataColumn D2_IDJOBS =
new System.Data.DataColumn ("IDJOBS", typeof (int));
D2_IDJOB..AutoIncrement = true;
D2_IDJOB.AllowDBnull = false;
DT_02.Column.Add(D2_IDJOB);
//CREIAMO ADESSO UNA TABELLA X UTENTE
DataColumn D2_Utente =
new .DataColumn ("Utente", typeof (int));
D2_Utente..AutoIncrement = true;
D2_Utente.AllowDBnull = false;
DT_02.Column.Add(D2_Utente);
//creiamo adesso anche unacampo desrizione
DataColumn D2_Desc =
new System.Data.DataColumn ("Desc", typeof (int));;
D2_Desc.AllowDBnull = false;
DT_02.Column.Add(D2_Desc);
// E adesso vediamo come si crea il primo oggetto DataRow, ossia il primo elemento che mettiamo nel database virtuale ossia nel nostro DataSet
DataRow j1 = new DataRow();
j1["Utente"] =1;
j1["Desc"]="Capitolo Adonet";
DT_02.Row.Add(j1);
//A questo punto vediamo come si possa creare una relazione a livello Dataset fra le colonne ID di //DT_01 e Utente di DT_02
Quindi si utlizzera un oggetto chiamato DataRelation che sarà cosi’ cotruito
DataRelation dRel1 = new DataRelation ("UtentiJobs", DT_01.Columns["ID"], DT_02.Columns["Utente"]);
DS_01.Relations.Add(dRel1);
Il database virtuale è cosi creato , e quello che abbiamo fatto è abbastanza immediato, abbiamo prima costruito la relazione e dopo l’abbiamo messa in comunicazione fra di se.
Vediamo adesso come implementare un DataSet con i dati provenienti da na tabella residente in un database.
Per fare questo supponiamo di essere in possesso di un database gia’ formato chiamato db.mdb e posizionato dentro la cartella site , quindi avremo
OleDbConnection mdbConnection = new OleDbConnection ( "Provider = Microsoft.Jet.OleDB.40; DataSource = C:\\site\db.mdb");
// queste operazione si occuperanno di stabilire se è meno possibile di effettuare il collegamento con il nostro database.
try
{
mdbConnection.Open();
}
catch (Exception Ex)
{
Response.Write ("Impossibile aprire una connessione con il Database ");
}
// Adesso preleviamo i dati contenuti
OleDbDataAdapter _cmd = new OleDbDataAdapeter ("Select * From Utenti", mdbConnection);
//Creiamo un oggetto Dataset
DataSet ds = new DataSet();
//Non ci rimane che riempire il nostro dataset con i dati provenienti dal database
_cmd.Fill(ds, "Utenti");
// e chiudere la connessione, per la verità dovrebbe essere un'operazione che compie da solo, ma una precauzione in piu' non basta mai.
if (mdConnection.State != System.Data.ConnectionState.Closed)
{
mdbConnection.Close();
}
Queste sono le operazioni da compiere, non ci soffermiamo piu’ di tanto sulle classi da dove provengono e le sottoclassi perche’ entreremo in un tecnicismo abbastanza incomprensibile e abbastanza inutile dato che queste operazioni cambiando poi i nomi normalmente si fanno quasi con dei copia incolla, insomma sono standard.
Facciamo notare solamente la creazione dell’oggetto OleDbDataAdaper, il quale altro non è che un canale di comunicazione di dati , attraverso il quale s’inolta il comando TSQL alla connessione che sta puntando all’applicazione stessa.
I DataReader spiegazione in Aspnet
Ora che abbiamo visto i DataSet passiamo a descrivervi i DataReader
Un DataReader si qualifica in uno stream di recordi di tipo forward only, il quale pemette la lettura di un singolo record per vola. Questa tecnica di connessione si dice “Connessa”, in quanto durante la lettura con un oggetto DataReader, la connessione a essa associata resta occupata.
E’ sicuramente uno strumento affidabile, l’oggetto DataReader non tiene in memoria alcun tipo di valore, ne durante la lettura e tantomeno l’inizio di parametri di putput.
vediamo come funziona nello specifico.
OleDbConnection mdbConnection = new OleDbConnection ("Provider = Microsoft.Jet.OleDb.4.0; Data Source = C:\\site\db.mdb");
//si ricontrolla il buon andamento della connessione.
try {
mdbConnection.Open();
}
catch (Exception Ex)
{
Response.Write( "Impossibile Aprire una connessione con il database");
}
OleDbCommand _OleCmd = new OleDbCommand ( "Select * from Utenti", mdbConnection);
System.Data.OleDb.OleDbDataReader dr = _OleCmd.ExecuteReader();
//se il risultato della query contiene dei valori
if (dr.HasRows)
{
while (dr.Read())
{
Response.Write ("utente "+ dr["Nome"] + " " + dr["Cognome"] + "<br>") ;
}
}
//Come sempre a questo punto si chiude la connessione
if (mdConnection.State != System.Data.ConnectionState.Closed)
{
mdbConnection.Close();
}
Vi vogliamo fare soppesare l’attenzione su un comando che abbiamo introdotto in questa pagina ossia HasRow, per chi gia’ conoscesse da altri linguaggi EOF il problema è risolto, anche se MicroSoft lo spaccia come una novità tutta sua , in soldoni si tratta della stessa cosa. per gli altri si tratta semplicemente di una variabile che interagisce con il database ogni volta che si effettua la lettura di un record dal databasse e quando non sono presenti altri recordi viene caricata al valore booleano di false.
OleDbConnetcion mdbConnection = new OleDbConnection (" Provider = Microsoft.Jet.OleDB.4.0; Data Source = C:\\site\db.mdb");
// si controlla il buon esito dell'apertura del db
try
{
mdbConnection.Open();
}
catch (Exception Ex)
{
Response.Write ("Impossibile arpire una connessione con il database");
}
// E per la chiusura si ha
if (mdbConnection.State != System.Data.ConnectionState.Closed)
{
mdbConnection.Close();
}
Oggetto Command
L’oggetto Command viene utilizzato per spedire dei comandi di tipo TSQL (Quelli che abbiamo visto fino ad adesso ) al nostro database di riferimento e opera soltanto quando la variabile state che abbiamo incontrato nel nostro ultimo if ha il valore di true. Sono in pratica dei comandi che ci possono tornare utili nella nostra fase di analisi. L’oggetto Comamand nativamente implementa i seguenti 4 metodi
- ExecuteNonQuery() numero di righe che sono coinvole nell’operazione
- ExecuteScalar () primo valore della colonna prima di sinistra
- ExecuteReader () viene utilizzato per compilare un oggetto di tipo Data Reader
CommandBehavior
Questi CommandBehavior forniscono dei risultati della query e dei relativi effetti sul database in cui vengonol lanciati i comandi SQL
Mi piace:
Mi piace Caricamento...
Iniziamo con questo capitolo una serie di approfondimenti per quanto riguarda il Aspenet , approfondendo alcune delle ultime tecnologie introdotte da Aspnet 3.5. Un DataSet è da considerarsi alla stregua di un piccolo Database Programmato,. Il Qulkae permette di compiere una sieri di operazioni sui dati in elaborazione.. Le tabele appartenenti a un Dataset possono essere messe in relazione anche tra di loro con dei collegamenti definiti relazioni.
Cosa sono i DataSet di Aspnet e come si creano
Le istruzioni per la creazione di un Data Set sono
mentre per creare un database contenente per esempio nomi utenti e cognomi di dipendenti si fa
vediamo adesso invece come popolare i campi della tabella
Come si vede abbiamo definito la prima colonna autoincrementante con il campo id, questa vuol dire che ogni qual volta si inserisce un valore questo finisce per incrementare a sua volta quel determinato campo da solo.
Da notare anche che al termine di ogni colonna abbiamo inserito la voce
Le tabelle del database sono state create adesso occorre anche popolarle e questo lo facciamo ricorrendo ai DataRow nel seguente modo
E per aggiungere il primo utente faremo semplicemente
Supponiamo adesso di avere la necessità di avere due o piu’ tabelle e doverle mettere in qualche modo in collegamenteo fra di loro , in questo caso dovremo fare
Quindi si utlizzera un oggetto chiamato DataRelation che sarà cosi’ cotruito
Il database virtuale è cosi creato , e quello che abbiamo fatto è abbastanza immediato, abbiamo prima costruito la relazione e dopo l’abbiamo messa in comunicazione fra di se.
Vediamo adesso come implementare un DataSet con i dati provenienti da na tabella residente in un database.
Per fare questo supponiamo di essere in possesso di un database gia’ formato chiamato db.mdb e posizionato dentro la cartella site , quindi avremo
Queste sono le operazioni da compiere, non ci soffermiamo piu’ di tanto sulle classi da dove provengono e le sottoclassi perche’ entreremo in un tecnicismo abbastanza incomprensibile e abbastanza inutile dato che queste operazioni cambiando poi i nomi normalmente si fanno quasi con dei copia incolla, insomma sono standard.
Facciamo notare solamente la creazione dell’oggetto OleDbDataAdaper, il quale altro non è che un canale di comunicazione di dati , attraverso il quale s’inolta il comando TSQL alla connessione che sta puntando all’applicazione stessa.
I DataReader spiegazione in Aspnet
Ora che abbiamo visto i DataSet passiamo a descrivervi i DataReader
Un DataReader si qualifica in uno stream di recordi di tipo forward only, il quale pemette la lettura di un singolo record per vola. Questa tecnica di connessione si dice “Connessa”, in quanto durante la lettura con un oggetto DataReader, la connessione a essa associata resta occupata.
E’ sicuramente uno strumento affidabile, l’oggetto DataReader non tiene in memoria alcun tipo di valore, ne durante la lettura e tantomeno l’inizio di parametri di putput.
vediamo come funziona nello specifico.
Vi vogliamo fare soppesare l’attenzione su un comando che abbiamo introdotto in questa pagina ossia HasRow, per chi gia’ conoscesse da altri linguaggi EOF il problema è risolto, anche se MicroSoft lo spaccia come una novità tutta sua , in soldoni si tratta della stessa cosa. per gli altri si tratta semplicemente di una variabile che interagisce con il database ogni volta che si effettua la lettura di un record dal databasse e quando non sono presenti altri recordi viene caricata al valore booleano di false.
Oggetto Command
L’oggetto Command viene utilizzato per spedire dei comandi di tipo TSQL (Quelli che abbiamo visto fino ad adesso ) al nostro database di riferimento e opera soltanto quando la variabile state che abbiamo incontrato nel nostro ultimo if ha il valore di true. Sono in pratica dei comandi che ci possono tornare utili nella nostra fase di analisi. L’oggetto Comamand nativamente implementa i seguenti 4 metodi
CommandBehavior
Questi CommandBehavior forniscono dei risultati della query e dei relativi effetti sul database in cui vengonol lanciati i comandi SQL
Condividi:
Mi piace: