giovedì 24 settembre 2026

C# trasformare un DataRow in un oggetto Ado.NET

In questo frammento di codice, scritto in C# e basato su ADO.NET, vediamo come convertire un DataRow in un oggetto contenente i dati presenti nella riga.

La funzione utilizza la reflection per analizzare le proprietà dell'oggetto e assegnare a ciascuna di esse il valore presente nel DataRow. La corrispondenza viene effettuata utilizzando il nome della proprietà e il nome della colonna: se nel DataRow è presente una colonna con lo stesso nome della proprietà, il relativo valore viene assegnato all'oggetto.

La funzione gestisce inoltre i valori DBNull e tenta di convertire automaticamente il valore della colonna nel tipo della proprietà dell'oggetto.

La funzione per convertire il DataRow in un oggetto

C#

public T DataRowToObject<T>(DataRow riga) where T : new()

{

    T obj = new T();

    var propieta = typeof(T).GetProperties();

 

    foreach (var prop in propieta)

    {

        if (!riga.Table.Columns.Contains(prop.Name))

            continue;

 

        object value = riga[prop.Name];

 

        if (value == DBNull.Value)

        {

            prop.SetValue(obj, null);

            continue;

        }

 

        Type propType = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;

 

        try

        {

            object convertedValue = Convert.ChangeType(value, propType);

            prop.SetValue(obj, convertedValue);

        }

        catch

        {

                   

            prop.SetValue(obj, value.ToString());

        }

    }

 

    return obj;

}



Esempio di utilizzo

Supponiamo di avere una classe Anagrafica. Possiamo utilizzare la funzione passando come parametro il primo elemento della tabella:

C#
Anagrafica anagrafica = DataRowToObject<Anagrafica>(dttDati.Rows[0]);


In questo modo, le proprietà dell'oggetto Anagrafica verranno valorizzate utilizzando i dati presenti nel DataRow, sulla base della corrispondenza tra i nomi delle proprietà e quelli delle colonne.

 
 

mercoledì 23 settembre 2026

Download gioco gratuito WRIGGZ

 

download gioco WRIGGZ


Il videogioco è disponibile in lingua inglese per sistemi operativi Windows ed è adatto a ragazzi e adulti.

Per maggiori informazioni e per effettuare il download, visitate la pagina ufficiale del gioco su Epic Games: https://store.epicgames.com/p/wriggz-c2e9bc

Gaia Sky: un planetario open source per esplorare l'universo programma gratuito

 

programma per lo spazio gaia sky

Gaia Sky è un software gratuito e open source dedicato all'esplorazione astronomica. Il programma permette di visualizzare e navigare in una rappresentazione tridimensionale dell'universo, offrendo informazioni su costellazioni, pianeti, stelle e numerosi altri oggetti celesti.

Tra le caratteristiche più interessanti c'è la possibilità di esplorare l'universo in modo interattivo, utilizzando il computer come un vero e proprio planetario virtuale.

Gaia Sky è disponibile gratuitamente per Windows, Linux e macOS, ed è quindi utilizzabile su diverse piattaforme.

Se siete appassionati di astronomia o semplicemente curiosi di esplorare l'universo attraverso un software open source, Gaia Sky può essere un programma interessante da provare.

Per maggiori informazioni, per conoscere tutte le funzionalità disponibili e per effettuare il download, è possibile visitare il sito ufficiale:

https://gaiasky.space/

martedì 22 settembre 2026

Download gioco Quantum Frame

 

gioco Quantum Frame

Quantum Frame è un videogioco gratuito di genere sparatutto d'azione in terza persona, sviluppato e pubblicato da CyberCrew Studios.

Il gioco è disponibile in Early Access sulla piattaforma Epic Games Store ed è compatibile con i sistemi operativi Windows. Sono disponibili modalità multiplayer come Free-for-All, Team Deathmatch e Domination.

Il gioco è disponibile con testi e audio in lingua inglese ed è classificato 12+.

La scheda ufficiale segnala inoltre la presenza di elementi Blockchain/NFT e la possibilità di effettuare acquisti in-game.

Per maggiori informazioni e per scaricare gratuitamente il gioco, è possibile consultare la pagina ufficiale di Epic Games Store: https://store.epicgames.com/p/quantum-frame-357b84

C# – Come calcolare la percentuale tra due numeri

L'esempio di codice riportato di seguito, in C#, permette di calcolare la percentuale di un numero rispetto a un totale.

C#

private void CalcolaPercentuale(double parte, double totale)

   {

       if (totale == 0)

       {

           MessageBox.Show("Il totale non può essere zero.");

           return;

 

       }

       TxtRisultatoPercentuale.Text = Convert.ToString((parte / totale) * 100);

   }

 

Di seguito per invocare la funzione.


C#

CalcolaPercentuale(25, 200); //12,5


lunedì 21 settembre 2026

C# Convert Decimal to Double

Tramite il metodo ToDouble della struttura Decimal, è possibile convertire un valore di tipo decimal in un valore di tipo double.
Di seguito viene riportato un frammento di codice di esempio in C#, dove NudPrimaParte è un controllo di tipo NumericUpDown:

C#
decimal.ToDouble(NudPrimaParte.Value)

domenica 20 settembre 2026

Download gioco Aniimo

 

Download gioco Aniimo

Il videogioco Aniimo è un gioco per sistemi operativi Windows, caratterizzato da una grafica molto curata e, soprattutto, da una giocabilità ben realizzata.

Si tratta di un videogioco di avventura, disponibile gratuitamente sulla piattaforma Epic Games Store.

Per maggiori informazioni e per effettuare il download, visitate il seguente sito:

https://store.epicgames.com/p/aniimo-759396

GitHub: come modificare la presentazione di un repository con README.md

GitHUB modificare file REAME.MD



In questo breve articolo vedremo come modificare il file README.md, che permette di fornire una panoramica del repository GitHub.

Quando pubblichiamo un repository, potremmo avere la necessità di presentare il progetto o l’applicativo. Questa presentazione può essere realizzata attraverso il file README.md, che viene visualizzato nella pagina principale del repository.

Dopo aver creato e pubblicato il file README.md, può capitare di dover apportare delle modifiche al suo contenuto.

Per modificare il file, è sufficiente posizionarsi nella sezione del README.md e, nella parte superiore destra, fare clic sull’icona della matita, come mostrato nella Figura 1.


GitHUB modificare file REAME.MD
Figura 1 – Il pulsante della matita per la modifica

Dopo aver fatto clic sull’icona della matita, il file README.md verrà aperto in modalità di modifica, come mostrato nella Figura 2.

GitHUB modificare file REAME.MD
Figura 2 – Il file in modalità editing


Dopo aver modificato la presentazione, tramite il pulsante “Preview” possiamo visualizzare l’anteprima e verificare se le modifiche sono di nostro gradimento oppure se sono necessarie ulteriori modifiche.

Una volta verificato che il risultato è corretto, non resta che effettuare il commit, ossia confermare e salvare le modifiche apportate.

Nella parte superiore destra della pagina troviamo un pulsante di colore verde con la dicitura “Commit Changes…” (Figura 3), tramite il quale possiamo confermare le modifiche.


GitHUB modificare file REAME.MD
Figura 3 – Il pulsante per confermare le modifiche


Facciamo clic sul pulsante “Commit changes…” per confermare le modifiche. Verrà visualizzata una finestra in primo piano (Figura 4) nella quale possiamo specificare un messaggio che descriva le modifiche effettuate.

Possiamo mantenere il messaggio proposto automaticamente da GitHub oppure modificarlo e integrarlo in base alle nostre esigenze.



GitHUB modificare file REAME.MD
Figura 4 – Il messaggio di conferma con la possibilità di fornire informazioni sulla modifica



Dopo aver verificato il testo modificato e aver controllato l’anteprima, facciamo clic sul pulsante “Commit Changes” per confermare definitivamente le modifiche.

A questo punto, le modifiche verranno salvate e il file README.md sarà aggiornato.

Conclusioni
In questo articolo abbiamo visto uno dei tanti modi per modificare il file README.md, utilizzato per fornire informazioni e una presentazione del repository.

La semplicità e l’intuitività di GitHub permettono di gestire e aggiornare facilmente i propri progetti, anche attraverso strumenti accessibili direttamente dall’interfaccia web.

sabato 19 settembre 2026

C# ADO.NET: mappare le proprietà di un oggetto in un DataRow e aggiungerlo a un DataTable

Il seguente frammento di codice in C# illustra una tecnica, utilizzando ADO.NET, per mappare i dati presenti nelle proprietà di un oggetto nelle colonne di un DataTable.

In particolare, viene creato un oggetto di tipo DataRow nel quale vengono copiati i valori delle proprietà dell'oggetto che hanno un nome corrispondente a quello delle colonne presenti nel DataTable.

La classe di esempio

Di seguito viene riportata la classe che utilizzeremo nell'esempio:

 

C#

   class Anagrafica

   {

       public string Nome { get; set; } = string.Empty;

 

       public string Cognome { get; set; } = string.Empty;

 

       public DateTime DataNascita { get; set; }

 

 

 

   }


Il DataTable

Per l'esempio utilizziamo un oggetto di tipo DataTable:

C#

private DataTable dttDati = new DataTable();


La funzione per il mapping

La seguente funzione si occupa di copiare nel DataRow i valori presenti nelle proprietà dell'oggetto.

Per ottenere le proprietà dell'oggetto viene utilizzata la Reflection tramite il metodo GetProperties().

Per ogni proprietà viene verificato se nel DataTable esiste una colonna con lo stesso nome. In caso affermativo, il valore della proprietà viene assegnato alla relativa colonna del DataRow.

C#

private void MappaDtoObjectInDataRow(object dto, DataRow r)

 {

     foreach (var prop in dto.GetType().GetProperties())

     {

         if (dttDati.Columns.Contains(prop.Name))

         {

             r[prop.Name] = prop.GetValue(dto) ?? DBNull.Value;

         }

     }

 }

 

In questo modo, ad esempio, la proprietà Nome dell'oggetto viene associata alla colonna Nome del DataTable, la proprietà Cognome alla colonna Cognome e così via.

Esempio di utilizzo

Di seguito viene mostrato un esempio di utilizzo della funzione, ad esempio all'interno dell'evento Load di una Form oppure nell'evento Click di un pulsante.

Per prima cosa vengono definite le colonne del DataTable:

C#

dttDati.Columns.Add(new DataColumn("Nome"));

 dttDati.Columns.Add(new DataColumn("Cognome"));

 dttDati.Columns.Add(new DataColumn("DataNascita"));


Successivamente viene creato un oggetto Anagrafica:

C#

Anagrafica nominativo = new Anagrafica

 {

     Nome = "Emanuele",

     Cognome = "Mattei",

     DataNascita = DateTime.Now

 

 };


A questo punto viene creato un nuovo DataRow utilizzando il metodo NewRow() del DataTable:

C#

DataRow riga = dttDati.NewRow();


Il metodo MappaDtoObjectInDataRow() viene quindi utilizzato per copiare nel DataRow i valori presenti nelle proprietà dell'oggetto:


C#

MappaDtoObjectInDataRow(nominativo, riga);

Infine, il DataRow viene aggiunto al DataTable:

C#

dttDati.Rows.Add(riga);


Il risultato è quindi un DataTable nel quale i valori dell'oggetto Anagrafica sono stati associati alle colonne aventi lo stesso nome delle relative proprietà.

venerdì 18 settembre 2026

Download gioco gratuito SpecialForce Remaster

 

download gioco SpecialForce Remaster

SpecialForce Remaster è uno sparatutto in prima persona (FPS) disponibile gratuitamente per PC Windows sulla piattaforma Epic Games Store.

Il gioco propone modalità multiplayer a squadre, combattimenti frenetici e diverse modalità di gioco, tra cui Team Deathmatch, Free for All e modalità a obiettivi. È disponibile con testi e audio in inglese

Per maggiori informazioni e download, visitate il seguente sito https://store.epicgames.com/p/special-force-remastered-8989d7

Error 19 "UNIQUE constraint failed" con SQLite ed Entity Framework Core C#

Quando si sviluppano applicazioni utilizzando il database SQLite, Entity Framework Core e il linguaggio C#, durante l'inserimento dei dati può verificarsi un errore di questo tipo:

Error 19: 'UNIQUE constraint failed: NomeTabella.Campo'.

Questo errore indica che si sta tentando di inserire un valore già presente in una colonna sulla quale è stato definito un vincolo UNIQUE oppure che viene utilizzata come chiave primaria.

Nel caso in cui il campo sia una chiave primaria numerica che deve essere generata automaticamente da SQLite, è opportuno verificare innanzitutto che la relativa colonna sia stata definita correttamente, ad esempio:

NomeCampo INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL

È inoltre importante verificare la configurazione del modello nel DbContext, all'interno del metodo OnModelCreating, affinché Entity Framework Core sappia che il valore della chiave viene generato al momento dell'inserimento.

Ad esempio:
C#
modelBuilder.Entity<NomeTabella>(entity =>
{
    entity.HasKey(e => e.IdCampoChiaveContatore);

    entity.Property(e => e.IdCampoChiaveContatore).ValueGeneratedOnAdd();
entity.Property(e => e.CampoDate).HasColumnType("DATETIME"); });

 

In questo modo, IdCampoChiaveContatore viene configurato come chiave il cui valore viene generato durante l'inserimento del record.

Se, nonostante questa configurazione, compare l'errore UNIQUE constraint failed, è opportuno verificare anche il valore che l'applicazione sta effettivamente tentando di inserire: se viene assegnato manualmente un valore già esistente alla chiave primaria, SQLite segnalerà comunque una violazione del vincolo UNIQUE.

 

giovedì 17 settembre 2026

C# Entity Framework Core e SQLite: errore "SQLite Error 14: unable to open database file"

Quando si utilizza un database SQLite con Entity Framework Core, può capitare di visualizzare un errore simile al seguente:

SQLite Error 14: 'unable to open database file'.

Una delle cause più comuni è che il percorso specificato per il database non sia corretto oppure che il file .db non si trovi nella directory in cui l'applicazione lo sta cercando.

Se il database viene inserito all'interno di una cartella del progetto, è importante assicurarsi che il file venga copiato nella directory di output durante la compilazione. Nelle finestra delle proprietà del file .db, impostare quindi l'opzione "Copia se più recente" alla voce "Copia nella directory di output".
In questo modo, il database verrà copiato nella directory di output dell'applicazione e sarà disponibile quando l'applicazione viene eseguita.
È inoltre opportuno verificare che la directory indicata nel connection string esista e che l'applicazione disponga dei permessi necessari per accedere al file.