Visualizzazione post con etichetta .Net 6. Mostra tutti i post
Visualizzazione post con etichetta .Net 6. Mostra tutti i post

giovedì 11 aprile 2024

C# linq metodo IntersectBy per ritornare gli oggetti di due insieme

Il metodo Intersect, estrapola quei dati che presi due liste, hanno i valori uguali, qui https://emanuelemattei.blogspot.com/2021/04/linq-utilizzo-del-metodo-intersect-per.html un esempio di utilizzo.
Con la versione .Net 6 e versione successive, è possibile utilizzare il metodo "IntersectBy" per estrapolare un oggetto presente in entrambi le liste.

Di seguito il frammento di codice di una lista per la classe persona, con il quale si estrapolano gli oggetti che sono uguali in entrambi le liste, utilizzando come condizione la proprietà "Eta".

List<Persona> persone = new List<Persona>();
Persona persona = new Persona();
persona.Cognome = "Mattei";
persona.Nome = "Emanuele";
persona.Eta = 1;
persone.Add(persona);
persona = new Persona();
persona.Cognome = "Cristaldi";
persona.Nome = "Luigi";
persona.Eta = 2;
persone.Add(persona);
persona = new Persona();
persona.Cognome = "Bianchi";
persona.Nome = "Luca";
persona.Eta = 3;
persone.Add(persona);


List<Persona> persone2 = new List<Persona>();
Persona persona2 = new Persona();
persona2.Cognome = "Mattei";
persona2.Nome = "Emanuele";
persona2.Eta = 1;
persone2.Add(persona2);
persona2 = new Persona();
persona2.Cognome = "Cristaldi";
persona2.Nome = "Luigi";
persona2.Eta = 4;
persone2.Add(persona2);
           
var risultato = persone.IntersectBy(persone2.Select(p=>p.Eta), p=>p.Eta); //Restituisce Emanuele Mattei

lunedì 8 aprile 2024

C# utilizzo del metodo ExceptBy

Altra novità interessante della versione .Net 6 e versioni successive, è quella del metodo ExceptBy, con il quale esaminando due liste, restituisce gli oggetti che non sono presenti nella seconda lista in riferimento ad una condizione.
Nell'esempio seguente, si esaminano due liste di oggetti di tipo persone, utilizzando la proprietà "Eta" come condizione.

  List<Persona> persone = new List<Persona>();
  Persona persona = new Persona();
  persona.Cognome = "Mattei";
  persona.Nome = "Emanuele";
  persona.Eta = 1;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Cristaldi";
  persona.Nome = "Luigi";
  persona.Eta = 2;
  persone.Add(persona);
  persona = new Persona();
  persona.Cognome = "Bianchi";
  persona.Nome = "Luca";
  persona.Eta = 3;
  persone.Add(persona);


  List<Persona> persone2 = new List<Persona>();
  Persona persona2 = new Persona();
  persona2.Cognome = "Mattei";
  persona2.Nome = "Emanuele";
  persona2.Eta = 1;
  persone2.Add(persona2);
  persona2 = new Persona();
  persona2.Cognome = "Cristaldi";
  persona2.Nome = "Luigi";
  persona2.Eta = 4;
  persone2.Add(persona2);
 
  var risultato = persone.ExceptBy(persone2.Select(p=>p.Eta), p=>p.Eta); //Restituisce l'oggetto Cristaldi e Bianchi Luca
            

Mentre nel caso di utilizzo di liste semplice (esempio array di string) è consigliabile usare il metodo Except .

lunedì 25 marzo 2024

C# .Net MinBy

Dalla versione 6 del Framework .Net, è possibile utilizzare la funzione MinBy che restituisce l'oggetto del valore minimo di una lista.
Supponiamo di avere una classe di tipo persona, con proprietà quali nome, cognome ed età, e vogliamo estrapolare da una lista di questa classe, quello che ha l'età minore. In una espressione lambda, avremmo ottenuto il valore minimo con il metodo Min, mentre con il metodo MinBy otteniamo l'oggetto che ha il valore minimo di una proprietà.


            List<Persona> persone = new List<Persona>();
            Persona persona = new Persona();
            persona.Cognome = "Mattei";
            persona.Nome = "Emanuele";
            persona.Eta = 1;
            persone.Add(persona);
            persona = new Persona();
            persona.Cognome = "Cristaldi";
            persona.Nome = "Luigi";
            persona.Eta = 2;
            persone.Add(persona);
            persona = new Persona();
            persona.Cognome = "Bianchi";
            persona.Nome = "Luca";
            persona.Eta = 3;
            persone.Add(persona);
            var risultato = persone.MinBy(x => x.Eta); //Restituisce l'oggetto Mattei Emanuele
            var risultato2 = persone.Min(x => x.Eta); //Restituisce 1 



venerdì 25 novembre 2022

.Net 6 TryGetNonEnumeratedCount

Con la nuova versione di .Net 6, è possibile sapere se un enumerazione, per esempio array o list, contiene elementi oppure no, tramite il metodo "TryGetNonEnumeratedCount", che restituisce il numero elementi presenti.
Qui di seguito un frammento di codice del suo utilizzo.

string[] valori = new string[] { "Luigi", "Emanuele", "Olga", "Fabio" };
var esitoMetodo = valori.TryGetNonEnumeratedCount(out int ElementiTrovati);

Dove la variabile ElementiTrovati è uguale a 4 (per il numero degli elementi) e esitoMetodo  è uguale a "true".

mercoledì 28 settembre 2022

C# la gestione del file Microsoft Excel 365 con .Net 6

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_csharp-la-gestione-del-file-microsoft-excel-365-co_1805.aspx


In questo articolo vedremo come gestire un file di tipo Microsoft Excel 365 o 2016 tramite la tecnologia .Net versione 6, con il linguaggio di programmazione C# e l’ambiente di sviluppo Visual Studio 2022 Community, che è attualmente l’ultima versione nel momento in cui si sta scrivendo l’articolo.

Vedremo come in un progetto di tipo “Windows App”, ma le operazioni di lettura, scrittura e modifica dei dati, si possono fare anche per l’ambiente web, apportando alcuni accorgimenti per la gestione delle classi, ma il frammento di codice per gestire i dati è valido per tutti gli ambienti.


Creazione del file Excel e del progetto:

Si crea un nuovo file di tipo Excel 2016 o 365, inserendo come titoli di intestazione nella colonna “A1” il valore “Nome”, e per la cella “A2” il valore “Cognome”, il tutto come mostrato in figura 1.


Figura 1 – Le intestazioni del file Excel


Salviamo il file in una cartella del nostro pc, con privilegi di lettura e scrittura.

Apriamo Visual Studio 2022 Community o versione successive, e si crea un nuovo progetto di tipo “App Windows Forms” , facciamo click sul pulsante “Avanti” impostiamo un nome e nell’ultima finestra, selezioniamo come versione la 6.

Inseriamo nella form un controllo di tipo DatagridView, che avrà impostato la proprietà “Name” in DtgDati, e la proprietà “Dock” in “Top” , due label, che avranno la proprietà “Text” impostato rispettivamente su “Nome” e su “Cognome”, due controlli di tipo “TextBox”, con la proprietà “Name” impostata una su “TxtNome” e l’altra su “TxtCognome”, tre pulsanti, uno con la proprietà “Name” impostata su “BtnInserisci” e la proprietà “Text” con il valore “Inserisci”, un pulsante con la proprietà “Name” impostata su “BtnModifica” e la proprietà “Text” con il valore “Modifica”, il tutto come mostrato in figura 2.


Figura 2 – La form con i vari controlli


Stesura del codice

Ora non resta che scrivere il codice per la gestione dei dati per il file Excel, passiamo in visualizzazione codice, ed in alto sopra ad ogni riga di codice, dobbiamo inserire lo spazio dei nomi per la gestione dei dati, che è “OleDB”.


Sopra, nella parte dello spazio dei nomi, inseriamo le seguente istruzioni di codice.


C#

using System.Data;

using System.Data.OleDb;


Può darsi che l’ambiente di sviluppo ci chiede di intarlarli tramite “NuGet”.

Fatto ciò, nella classe, form, scriviamo il codice per la lettura dei dati, un metodo che verrà richiamato nell’evento click dei pulsanti e nell’evento load della form.

Di seguito il frammento del codice per la lettura dei dati del file Excel, utilizzando le classi dello spazio dei nomi “OleDB”, in particolare la classe OleDbAdapter, che permette di eseguire le query, OleDbConnection per effettuare il collegamento al file “Excel”, ed una classe “DataSet” per la gestione dei dati.


C#

private void CaricaDati()

        {

 

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                          "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                          "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    conn.Open();

                    OleDbDataAdapter DataAdapterQuery = new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM[Foglio1$]", conn);

                    DataSet DtsDati = new DataSet();

                    DataAdapterQuery.Fill(DtsDati);

                    DtgDati.DataSource = DtsDati.Tables[0];

                   

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                }

            }

 

        }

Passiamo in visualizzazione grafica, e facciamo doppio click in un qualunque punto della form, in modo che visualizza l’evento Load della form, con il quale richiamare la funzione appena creata.

Di seguito il frammento di codice delle suddette operazioni.

C#

private void Form1_Load(object sender, EventArgs e)

        {

            CaricaDati();

        }


Ora se proveremo ad eseguire la nostra applicazione, verrà visualizzato la griglia senza dati, in quanto al momento non sono presenti dati nel file Excel.

Passiamo in visualizzazione grafica, e facciamo doppio click sul pulsante con la dicitura “Inserisci” o il nome che avete assegnato per l’inserimento dei dati. Verrà visualizzata la parte codice dell’evento click del pulsante.

In questo caso, per l’inserimento dei dati, utilizzeremo le classi per la gestione delle operazioni di inserimento, che sono OleDbComand, passando l’istruzione SQL di insert.

Come si è visto anche nel precedente frammento di codice, il file “Excel” può essere considerato come un database, e quindi eseguire le normali istruzioni CRUD, lettura, inserimento e modifica dei dati, mentre per la cancellazione, non è possibile.

C#

private void BtnInserisci_Click(object sender, EventArgs e)

        {

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                      "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                      "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    conn.Open();

                    OleDbCommand cmd = new OleDbCommand();

                    cmd.Connection = conn;

                    cmd.CommandText = @"Insert into [Foglio1$] (Nome,Cognome)

            VALUES ('"+TxtNome.Text+"','"+TxtCognome.Text+"');";

                    cmd.ExecuteNonQuery();

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                    CaricaDati();

                }

            }

 

        }


La modifica dei dati è la stessa per l’inserimento, ma con la differenza che occorre cambiare la sintassi SQL, utilizzano il comando universale Update.


Passando in visualizzazione grafica, facciamo doppio click sul pulsante “Modifica” o a seconda del testo che ha impostato il lettore, e nell’evento click del pulsante, modificare la sintassi precedente con il comando Update.

Di seguito il frammento di codice delle suddette operazioni.


C#

private void BtnModifica_Click(object sender, EventArgs e)

        {

            string Connessione = "Provider=Microsoft.ACE.OLEDB.12.0;" +

                      "Data Source='" + @"C:\varie\FileExcel.xlsx" +

                      "';Extended Properties=\"Excel 12.0;HDR=YES;\"";

 

            using (OleDbConnection conn = new OleDbConnection(Connessione))

            {

                try

                {

                    if (DtgDati.SelectedCells.Count<2)

                    {

                        MessageBox.Show("Selezionare una riga");

                        return;

                    }

                    string Nome = DtgDati.SelectedCells[0].Value.ToString();

                    string Cognome = DtgDati.SelectedCells[1].Value.ToString();

                    conn.Open();

                    OleDbCommand cmdUpdate = new OleDbCommand();

                    cmdUpdate.Connection = conn;

                    cmdUpdate.CommandText = @"UPDATE [Foglio1$] SET Nome = '" + TxtNome.Text + "', Cognome='" + TxtCognome.Text + "' WHERE  NOME = '"+ Nome + "' and Cognome='" + Cognome + "';" ;

           

                    cmdUpdate.ExecuteNonQuery();

                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.Message);

                }

                finally

                {

                    conn.Close();

                    conn.Dispose();

                    CaricaDati();

                }

            }

        }





Conclusioni

L’articolo ha voluto fornire al lettore, la conoscenza per l’utilizzo dei file “Excel” come database, con il nuovo framework .Net versione 6, e di come tramite le classi OleDB, si possono eseguire le operazioni più comuni che si fanno con altri database.

Può capitare di utilizzare nelle proprie applicazioni file Excel, inserendoli nel proprio progetto come modelli per poi generarli con i dati fornendo all’utente finale una tipologia di informazioni e dati.

mercoledì 21 settembre 2022

C# .Net 6 il metodo Take

Altra novità della nuova versione del Framework .Net 6, è quella del metodo "Take" con il quale possiamo passare alcuni valori per estrapolare una serie di dati.
Di seguito alcuni esempi.

Supponiamo di avere una lista di tipo string, con i seguenti nominativi:

 string[] valori = new string[] { "Luigi", "Emanuele", "Olga", "Francesca", "Gianni", "Aldo" };

Passando al metodo "Take" un valore e poi due volte punto ed un altro valore, mi estrapola tutti quelli che si trovano in quel range.

L'esempio di seguito, mi estrapola quei valori che vanno da tre a 5, quindi "Olga" "Francesca " e "Gianni"
var risultato = valori.Take(2..5);
MessageBox.Show($"Valori tra il 3 e 5:  {string.Join(",",  risultato.ToList())}");

Se invece vogliamo estrapolare gli ultimi due elementi, qui di seguito un frammento di codice che mi visualizza "Gianni" ed "Aldo".

var risultato2 = valori.Take(^2..);
MessageBox.Show($"Ultimi due: {string.Join(",", risultato2.ToList())}");

Lo stesso anche con il frammento di codice qui di seguito ma gli ultimi tre.

var risultato3 = valori.Take(3..);
MessageBox.Show($"Gli ultimi tre: {string.Join(",", risultato3.ToList())}");

lunedì 5 settembre 2022

C# utilizzo del database LiteDB con .Net 6

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_csharp-utilizzo-del-database-litedb-con-dotnet-6_1802.aspx



In questo articolo vedremo come utilizzare il database LiteDB https://www.litedb.org/ con la tecnologia .Net 6 ed il linguaggio di programmazione C# tramite l’ambiente di sviluppo Visual Studio 2022.
L’articolo vuole fornisce una panoramica sulle operazioni più comuni che si fanno su un database, quali operazioni di Inserimento, modifica, lettura e cancellazione dei dati, detto CRUD.
Il database LiteDB è una dll molto leggera che permette di dotare le proprie applicazione di una gestione dei dati in forma multi piattaforma e senza installare drive o altri programmi per la relativa gestione.

Creazione del progetto

Si crea un nuovo progetto di tipo “App Windows Forms” impostando un nome di proprio piacimento e selezionando la versione del Framework a 6.
Dopo ave creato il progetto, inserire nella forma un controllo di tipo “DatagrdiView” impostando la proprietà “Name” in “DtgDati” due controlli di tipo “Label” per l’intestazione delle caselle di testo, due controlli di tipo “Caselle di testo” con la proprietà “Name” impostata in una a “TxtNome” e l’altra in “TxtCognome”, ed infine i tre pulsanti per la gestione di inserimento, modifica e cancellazione dei dati,  il tutto come mostrato in figura 1.


Figura 1 – l’interfaccia grafica per la gestione dei dati

Stesura del codice

Dopo aver impostato i vari controlli per la gestione dei dati, non resta che aggiungere al progetto le classi ed i riferimenti al database di tipo “LiteDB”.
Dalla casella di nuget per l’esecuzione da riga di comandi, scriviamo le istruzioni per aggiungere le classi per la gestione del database.
Eseguire il comando qui di seguito per aggiungere i riferimenti a “LiteDB”.

Install-Package LiteDB


Dopo aver impostato lo spazio dei nomi per la gestione di LiteDB, occorre scrivere il codice.
Facciamo doppio click sulla form, in modo da passare in visualizzazione codice nell’evento load della form.
In alto sopra ad ogni dichiarazione, aggiungiamo lo spazio dei nomi per gestire le varie classi.
Qui di seguito la dichiarazione dello spazio dei nomi per “LiteDB”.

using LiteDB;

Dopo aver aggiunto il riferimento alle classi per la gestione del database, dobbiamo scrivere il codice per eseguire le varie operazioni CRUD.
Prendendo come esempio il modello di Entity Framework, anche in questo caso le tabelle saranno mappate nelle varie classi.
Supponiamo che vogliamo gestire i dati anagrafici di una persona, quale Id contatore, Nome e cognome, queste proprietà saranno le colonne della tabella al quale sarà assegnato il nome della classe.
Di seguito si riporta il frammento di codice della classe per la gestione dei dati, da inserire fuori della classe “form” ma sempre nello spazio dei nomi.



C#

public class Angrafica

    {

        public Int32 Id { get; set; }

        public string Nome { get; set; }

        public string Cognome { get; set; }

        

    }



Si crea adesso una funzione che sarà richiamata dai vari pulsanti ed eventi,  che permette il caricamento dati nella griglia. La funzione sarà richiamata nell’evento load della form, e negli eventi click di ogni singolo pulsante.
La gestione dei dati avviene tramite un oggetto di tipo “LiteDatabase” che passando il percorso e nome del database lo crea oppure lo inizializza qualora è già presente. Tramite il metodo GetCollection, passando il nome della classe, mappiamo le informazioni tra la classe e la tabella che verrà creata qualora non esista.
Tramite il metodo Query, viene effettuata una selezione dei dati corrispondente al comando SQL di tipo “Select * From NomeTabella”, mentre con il metodo “ToList()” viene restituita la lista dei dati.
Qui di seguito si riporta il frammento di codice delle suddette operazioni.

C#

private void CaricaDati()

        {

            try

            {

                

                using (var db = new LiteDatabase(@"C:\Varie\Dati.db"))

                {

                    //Apre il db e se non esiste lo crea - Carica tutti i dati di tipo Anagrafica

                    var Dati = db.GetCollection<Angrafica>("Angrafica");

                    //Carica i dati nel controllo DataGrid, tramite il metodo Query effettu

                    DtgDati.DataSource = Dati.Query().ToList();

                    

                }

                TxtCognome.Text = "";

                TxtNome.Text = "";

            }

            catch (LiteException ex)

            {

                MessageBox.Show(ex.Message);

               

            }

 

 

        }


Torniamo in visualizzazione grafica ed eseguiamo l’applicazione per vedere se funziona.
Verificato il corretto funzionamento, non resta che scrivere il codice per l’inserimento dei dati.
Facciamo doppio click sul pulsante con il testo “Inserisci” in modo da passare in visualizzazione codice nell’evento click.
Anche in questo caso, bisogna come sempre effettuare un collegamento al database, ed avviene tramite la classe “LiteDatabase”, una volta effettuata la connessione si crea un oggetto di tipo “Anagrafica” che è la classe che mappa la tabella presente nel database, e valorizziamo i campi (nome, e cognome), a questo punto, tramite il metodo “Insert” dell’oggetto di tipo “IliteConnection” che è un insieme di oggetti della classe “Anagrafica” verrà effettuato l’inserimento del record.
Qui di seguito si riporta il frammento di codice delle suddette operazioni, per l’evento click del pulsante “Inserisci”.


C#

  private void BtnInserisci_Click(object sender, EventArgs e)

        {

            using (var db = new LiteDatabase(@"C:\Varie\Dati.db"))

            {

                //creo oggetto per l'inserimento dati

                var NuovoRecord = db.GetCollection<Angrafica>("Angrafica");

                //Valorizzo con i dati

                var utente = new Angrafica

                {

                    Cognome = TxtCognome.Text,

                    Nome = TxtNome.Text

                };

 

                //Inserisco

                NuovoRecord.Insert(utente);

              

 

            }

            CaricaDati();

            return;

        }


Ora non resta che eseguire la nostra applicazione, inserire dei dati nelle caselle di testo, e fare click sul pulsante “Inserisci”, dovremmo vedere di volta in volta l’inserimento dei dati nel controllo Griglia.
Passiamo in visualizzazione grafica, e facciamo doppio click sul pulsante “Aggiorna” in modo che passiamo in visualizzazione codice nell’evento click del pulsante.
La modifica dei dati, avviene selezionando il record interessato, ed impostato le proprietà dell’oggetto (classe Anagrafica) che rappresenta la tabella nel database.

Dopo aver effettuato la connessione alla fonte dati, tramite la classe “LiteDatabase”, si crea un oggetto di tipo “IliteCollection” , che rappresenta i record presenti nella tabella e tramite il metodo “Query” si effettua una ricerca dei dati, filtrando per il campo “Id”, tramite Where.
Una volta ottenuto il record, si modificano le proprietà “Nome” e “Cognome”, e tramite il metodo “update” dell’oggetto di tipo “ILiteCollection”, si aggiornano i dati.
Di seguito il frammento di codice delle suddette operazioni.

C#

  private void BtnAggiorna_Click(object sender, EventArgs e)

        {

            try

            {

                if (DtgDati.SelectedRows.Count < 1)

                {

                    MessageBox.Show("Selezionare almeno un record");

                    return;

                }

                Int32 idRecord = Convert.ToInt32(DtgDati.SelectedRows[0].Cells[0].Value);

                using (var db = new LiteDatabase(@"C:\Varie\Dati.db"))

                {

                    //creo oggetto per aggiornamento dati

                    var Dati = db.GetCollection<Angrafica>("Angrafica");

                    var recordDaAggiornare = Dati.Query().Where(p=>p.Id == idRecord).FirstOrDefault();

                    if (recordDaAggiornare != null)

                    {

                        //Valorizzo con i dati

                        recordDaAggiornare.Nome = TxtNome.Text;

                        recordDaAggiornare.Cognome = TxtCognome.Text;

                        //aggiorno

                        Dati.Update(recordDaAggiornare);

                    }

                   

 

 

                }

                CaricaDati();

            }

            catch (LiteException ex)

            {

                MessageBox.Show(ex.Message);

 

            }

        }



Ora non resta che seguire il programma, e nella casella nome e cognome, inseriamo dei valori e dopo aver selezionato una riga nella griglia, facciamo click sul pulsante “Aggiorna”, vedremo la griglia aggiornarsi con i nuovi dati.

Siamo giunti all’ultimo esempio di codice, quello relativo alla cancellazione dei dati, in particolare per cancellare un record di una determinata tabella dobbiamo utilizzare il metodo “Delete” dell’oggetto di tipo “ILiteCollection” lo stesso che abbiamo utilizzato nel precedente frammento di codice, quello relativo all’aggiornamento dei dati, passando come parametro il valore del campo chiave (in questo caso ID).
In particolare dopo aver effettuato la connessione alla fonte dati tramite “LiteDatabase”, si crea un oggetto di tipo “IliteCollection” tramite il metodo “GetCollection, e tramite il metodo “Delete” si passa il valore della colonna del campo chiave.
Se invece vogliamo eliminare tutti i record della tabella, possiamo utilizzare il metodo “DeleteAll” anziché il metodo “Delete” che svuota la tabella di tutti i dati.
Di seguito il frammento di codice delle suddette operazioni da inserire nell’evento click del pulsante “Elimina”.

C#

private void BtnElimina_Click(object sender, EventArgs e)

        {

            try

            {

                if (DtgDati.SelectedRows.Count < 1)

                {

                    MessageBox.Show("Selezionare almeno un record");

                    return;

                }

                Int32 idRecord = Convert.ToInt32(DtgDati.SelectedRows[0].Cells[0].Value);

 

                using (var db = new LiteDatabase(@"C:\Varie\Dati.db"))

                {

                    //Apre il db e se non esiste lo crea

                    var Dati = db.GetCollection<Angrafica>("Angrafica");

                     

                    bool risultato = Dati.Delete(idRecord);

 

 

                }

                CaricaDati();

            }

            catch (LiteException ex)

            {

                MessageBox.Show(ex.Message);

 

            }

 

        }




Ora non resta che eseguire il programma, e dopo aver selezionato una riga nella griglia, facciamo click sul pulsante “Elimina”, vedremo che il record non sarà più presente.

Conclusioni

L’articolo ha voluto fornire al lettore una panoramica ed introduzione sull’utilizzo di questo particolare database di dimensioni molto ridotte e di portabilità molto interessanti per applicazioni su multi piattaforma, fornendo al lettore le operazioni più comuni sulla gestione dei dati.
Per chi sviluppa con la metodologia Entity Framework non troverà difficoltà ad usare quel tipo di approccio nello sviluppare applicazioni.
Il codice dell’articolo si può utilizzare anche per altre tipologie di progetti, come in ambito  web.
L’articolo è dedicato all’amico Pasquale che mi ha fatto conoscere questo database e che il suo entusiasmo per le tecnologie mi coinvolge sempre più, un ragazzo dalla grande passione per le tecnologie e video giochi.