martedì 30 settembre 2014

ext.net problem RadioGroup set checked

Il frammento di codice illustrato qui di  seguito riguarda una tecnica di come impostare in un controllo Radio situato in un Radiogroup il valore di spunta.

Può capitare che durante l'apertura di una finestra (oggetto Window) il valore di un controllo Radio situato in un controllo RadioGroup non venga valorizzato.

Qui di seguito, il frammento di codice che illustra tale tecnica.





  RadioGroup1.Items[1].Checked = false;
            RadioGroup1.Items[2].Checked = false;
            var value = new InsertOrderedDictionary();
            value.Add("radio1", "true");
            RadioGroup1.CustomConfig.Add(new ConfigItem("Checked", JSON.Serialize(value), ParameterMode.Value));


lunedì 22 settembre 2014

Download ViVo Next 3.0 ed il Computer Legge per Te

ViVo Next 3.0 il computer legge per te










Rilasciata la nuova versione di Vivo Next 3.0 http://www.istitutomajorana.it/index.php?option=com_content&task=view&id=2354&Itemid=33 un programma molto importante per coloro che hanno problemi di vista.

Il programma è un ausilio visivo e vocale, adatto per ipovedenti e dislessici, la nuova versione comporta novità interessanti.

Ricordiamo che il programma è portable che non richiede nessuna installazione.

Complimenti ad Antonio e Silvio, per questo programma che hanno realizzato.









domenica 21 settembre 2014

WINDOWS EMBEDDED 8.1 Industry Pro: l'embedded facile da usare!

Il 2 ottobre 2014 alle 15 (CET) ci sarà un Seminario ON-LINE gratuito presentato da Cesare De Siena (AVNET Embedded) e da Beppe Platania (BEPS) su:

WINDOWS EMBEDDED 8.1 Industry Pro: l’embedded facile da usare!

WE8.1 Industry Pro e Industry Pro Retail vi permettono di implementare la tecnologia Windows 8.1 sui vostri dispositivi embedded in maniera rapida ed sicura.

Per conoscere i dettagli e le funzionalità del nuovo sistema operativo registratevi
qui

Agenda:

Il processo di Build da ISO/DVD (Next, next,... finito!)

 
-
Procedura semplice e veloce
 
-
Come gestire i driver di Windows
 
-
Le funzionalità di Windows
 
-
Le funzionalità Embedded
 
-
Un accenno al gestore delle funzionalità Embedded (ELM) 
 
-
Cattura dell'immagine (copia MASTER)
 
-
Duplicazione dell'immagine (copia MASTER)

l processo di Build con WSIM/WinPE (AIK)

 
-
Cos'è AIK
 
-
Cos'è WinPE
 
-
Come personalizzare Industry prima della build
 
-
Come personalizzare I'Answer-file di clonazione

ISCRIVITI AL SEMINARIO ON-LINE GRATUITO SU WINDOWS EMBEDDED 8.1 INDUSTRY PRO

Il Seminario, della durata di 45 minuti, si svolgerà on-line in italiano il 2 OTTOBRE alle 15 (CET)
Per partecipare bisogna registrarsi gratuitamente al seguente sito http://www.avnet-emb.eu/webinar/windows-embedded/italy dove si può consultare l'agenda dell'evento.

sabato 20 settembre 2014

LabVIEW Developer Tour




L'evento Labview Developer Tour, è una bellissima iniziativa formativa gratuita della società National Instruments Italia http://italy.ni.com per far conoscere l'ambiente di sviluppo Labview.


L'evento, qui http://italy.ni.com/labview-developer-tour la pagina ufficiale riguarda due tipologia di sessioni, una per principianti per far conoscere il prodotto e soprattutto con attività di laboratorio e l'altra per esperti in materia di certificazione.

L'evento si terrà in alcune città italiane, per iscrizioni e maggiori informazioni visitate il sito http://italy.ni.com/labview-developer-tour ufficiale.







giovedì 18 settembre 2014

free download ebook il dottore dei computer edizione XV




Novità per tutti coloro che cercano un manuale o meglio un ebook gratuito con consigli e trucchi sul mondo dei computer.
Da questo sito http://www.ildottoredeicomputer.com/2014/09/il-dottore-dei-computer-volume-15.html potete scaricare il volume 15, dell'ebook di "Il Dottore dei Computer".



mercoledì 17 settembre 2014

C# Array Set Value dynamic

Se abbiamo un array di string, e vogliamo settare un valore in una posizione, tramite il metodo SetValue, possiamo impostare il valore in una determinato indice.

Qui di seguito un esempio di codice in C#

 string[] MioArray = new string[8];
MioArray.SetValue("testo", 2);

venerdì 12 settembre 2014

Nanoforum evento gratuito sulle micro e nanotecnologie

Ritorna l'appuntamento più atteso dell'anno sulla tematica riguardante le micro e nanotecnologie, un forum di quattro giorni per scoprire le novità di questo settore, confrontarsi con esperti del settore.
Nanoforum http://www.nanoforum.it/ giunto alla sua decima edizione si propone come punto di riferimento per tutti coloro che lavorano in questo settore o che si stanno avvicinando.
L'evento è gratuito ed aperto a tutti per partecipare bisogna registrarsi al seguente sito http://www.nanoforum.it/iscrizione-nanoforum nel quale trovate l'agenda, il luogo ed altre informazioni di questo meraviglioso evento.

lunedì 8 settembre 2014

Evento Tecnologie Embedded per le Smart Machine

731x250


Ritornano gli eventi di National Instruments, questa volta a Reggio Emilia il giorno 30 settembre 2014, ci sarà un evento dedicato alle tecniche di progettazione meccatronica.

Qui http://italy.ni.com/eventi/seminario-smart-machine trovate informazioni sull'evento ed il modulo di iscrizione.

Un evento molto interessante.















sabato 6 settembre 2014

Recensione libro: Programmare con C# 5 Guida Completa



Scheda del libro:

Autore:
Antonio Pelleriti
Prezzo: Euro 48,90
Caratteristiche:
784 pag - 17x24
Numero Edizione:
1
Anno di edizione: Maggio 2014
ISBN: 9788868950125
Lingua: Italiano
Rilegatura Brossura

Interessante pubblicazione quella della casa editrice LSWR http://www.lswr.it  la quale prima dell’estate ha dato vita ad un buon manuale sul linguaggio di programmazione C#. Il libro Programmare con C# 5 Guida Completa http://www.lswr.it/libro/programmare-con-c-5/  è un manuale che affronta in maniera chiara ed esaustiva questo linguaggio.

Nel libro si trovano numerose immagini e frammenti di codice per far comprendere al lettore questa nuova versione del linguaggio di programmazione, che far nascere curiosità ai numerosi programmatori. Come ogni buon manuale che si rispetti, il libro fornisce una buona base per programmare con questo linguaggio, anche in ambiente web e mobile.

Qui di seguito si riportano i vari capitoli del libro. el libro.

1)  C# e la piattaforma .Net
2) Concetti di base di C#

3) Tipi e oggetti

4) Espressioni e operatori

5) Controllo di flusso

6) Programmazione a oggetti in C#

7) Ereditarietà e polimorfismo

8) Gesteione delle eccezioni

9) Tipi generici e collezioni

10)  Delegate ed eventi

11) Linq

12) Multithreading, programmazione asincrona e parallela

13) XML in C#

14) Reflection attributi e programmazione dinamica

15) Accesso ai dati

16) Applicazioni pratiche di C#

Appendice A) Stringhe ed espressioni regolari

Appendice B) Interoperabilità



Conclusioni
Ottimo manuale indispensabile per coloro che si avvicinano alla programmazione C# o che conosco altro linguaggio (VB.Net, Java, Delphi, etc) e che vogliono avvicinarsi a questo linguaggio. Il manuale guida passo per passo il lettore alla scoperta di questo linguaggio.

venerdì 5 settembre 2014

Recensione libro: Analisi dei dati con Excel



Scheda del libro:

Autore:
Alessandra Salvaggio
Prezzo: Euro 21,90
Caratteristiche:
288 pag - 17x24
Numero Edizione:
1
Anno di edizione: Giugno  2014
ISBN: 9788868950996
Lingua: Italiano
Rilegatura Brossura

La casa editrice Lswr http://www.lswr.it/  prima dell'estate ha pubblicato un libro su Excel molto interessante, il manuale Analisi dei dati con Excel    http://www.lswr.it/libro/analisi-dei-dati-con-excel/   scritto da Alessandra Salvaggio autrice di diversi manuali sul pacchetto Office, riguarda l'utilizzo di Excel sull'utilizzo di particolari funzioni.

Nel portale curato sempre dall'autrice del libro, Sos Office http://www.sos-office.it/ si trova altro materiale sul mondo Microsoft Office.

Ma vediamo in dettaglio i vari capitoli di questo libro.

Il primo capitolo a cui ha inizio anche la prima parte di questo manuale, riguarda alcuni aspetti introduttivi alle funzione e come assegnare alle intestazioni dei nomi.

Terminato il primo capitolo, si passa al capitolo due, nel quale sono illustrate tutte quelle funzioni di ricerca e riferimento che permettono di effettuare delle ricerche nel nostro file. Come si rispetti per tutti coloro che si avvicinano ad Excel, la prima formula che viene illustrata è Cerca.vert, illustrando i vari scenari che si possono verificare con questa formula. Continuando a leggere il capitolo viene illustrata la formula confronta, scarto, conta valori, ed indiretto. Un capitolo con diversi esempi di formule.

Il capitolo 3, illustra quelle funzioni logiche e di condizioni, quali e, se, not, somma più etc. Un capitolo più breve dei precedenti, ma che ha il solo scopo di illustrare tale funzionalità.

Un capitolo molto interessante che tornerà utile agli utilizzatori di Excel, è il quarto capitolo, in questo capitolo viene illustrata la gestione degli errori, molto importante, visto che in un software così potente, si possono compiere errori.

Nel capitolo 5, viene affrontato in maniera esaustiva tutte quelle funzioni che permettono di effettuare l’arrotondamento. I numerosi esempi e il dettaglio delle varie funzioni, forniranno al lettore un valido supporto.

Il capitolo sesto, riporta interessanti esempi e formule che tornano utile nella gestione delle date ed ore. Il capitolo contiene una serie di esempi, di uso comune, che torneranno utile anche chi utilizza poco questo tipo di informazione.

Con il settimo capitolo, si conclude la prima parte di questo interessante libro. Il capitolo, illustra una gestione complessa delle formule, i dati in forma di matrice, un argomento complesso ma che tramite i vari esempi fornirà al lettore una base su cui lavorare in certe situazioni.

Con il capitolo ottavo, prende inizio la seconda parte del libro, in questo capitolo vedremo come strutture i dati, e raggrupparli. Un capitolo sotto vari aspetti interessante.

Il capitolo 9, è rivolto ad un tema che riscontra sempre interesse e che troviamo in ogni buon libro di Excel che si rispetti, le tabelle Pivot. L’autore del libro affronta in maniera ottimane tale argomento, che grazie al supporto anche delle numerose immagini, e degli esempi, il lettore comprenderà in maniera facile l’argomento trattato.

Il capitolo decimo riguarda una parte molto interessante, che può tornare utile a coloro che utilizzano Excel. La gestione dei dati su più file, nel capitolo viene preso in esame una situazione in cui bisogna gestire informazioni provenienti da tre distinti file di Excel.

Nel capitolo 11, viene illustrata una funzionalità che poco si conosce o si utilizza, le tabelle in Excel. Nel capitolo viene fatta una panoramica con diversi esempi sull’utilizzo di tabelle in Excel.

Il capitolo 12, illustra in maniera dettagliata lo strumento Microsoft Query, delle sue potenzialità e come utilizzarlo nel modo migliore.

Nel terzultimo capitolo (13 ) viene affrontata un’altra funzionalità che ci mette a disposizione Microsoft Excel, lo strumento per fare analisi di simulazione. Un modo di analizzare i dati nel nostro file Excel. Il capitolo fornisce interessanti indicazioni.

Nel penultimo capitolo (14) viene fornita una panoramica del componente gratuito “risolutore”, l’autore fornisce al lettore alcuni casi reali di come utilizzarlo.

Con l’ultimo capitolo (15) viene illustrato altro componente gratuito, il PowerPivot, e di come questo strumento può dare un valido aiuto all’utente nella gestione dei dati.



Qui di seguito si riportano i vari capitoli del libro. el libro.

1) Le Funzioni

2) Funzioni di ricerca e di riferimento

3) Le funzioni logiche e le funzioni condizionali

4) Gestire gli errori

5) Le funzioni di arrotondamento

6) Funzioni di data e ora

7) Le funzioni in forma di matrice

8) Strutture

9) Le tabella Pivot

10) Consolidare i dati

11) Le tabelle

12) Microsoft query

13) Analisi di simulazione

14) Il risolutore

15) PowerPivot



Conclusioni
Un buon libro per chi utilizza Excel e vuole comprendere alcune formule di questo ottimo software.

Le numerose immagini e gli esempi semplificano la comprensione dell'argomento  trattato.

giovedì 4 settembre 2014

.Net Importare dati da Excel in Oracle C#

Si riporta l'articolo scritto per il sito http://www.iprogrammatori.it/articoli/programmazione/art_net-importare-i-dati-da-un-file-excel-in_1390.aspx


Introduzione

In questo articolo vedremo come creare un semplice programma (Windows Application) che forniti alcuni parametri, estrapola i dati da un file Excel e li inserisce in una tabella di Oracle.
Creazione progetto
Creare una tabella (Anagrafica) con i seguenti campi, Nome e Cognome di tipo Varchar 255.
A questo punto salvate la tabella con il nome Anagrafica.
Create un file Excel, impostando in A1 il valore Nome, ed in B1 il valore Cognome.
A questo punto inserite nelle successive righe (a2, a3, a4, b2, b3,b4) i dati di vostro piacimento.
Terminata la creazione di tabella e file, aprite Visual Studio 2010 o versione successiva, e selezionate come linguaggio di programmazione C#, il modello selezionate Windows Application o console application.

Stesura del codice

Passate in visualizzazione codice, aggiungete i riferimenti alla libreria “Microsoft.Practices.EnterpriseLibrary.Common” e “Microsoft.Practices.EnterpriseLibrary.Data” “Microsoft.Practices.ObjectBuilder” le librerie EnterpriseLibrary, ci permettono di seguire query (insert) anche nel caso che un domani vogliamo cambiare il tipo di database, per esempio in Sql Server, in questo modo evitiamo di riscrivere tutto l’applicativo.
Aggiungiamo al progetto un file di tipo “AppSetting” in questo file ci saranno i parametri che permetteranno di gestire le informazioni di elaborazione, come nome colonne, nome foglio, file Excel, tabella, nome colonne, ed altro ancora.
Qui di seguito si riporta il contenuto del file di configurazione.


<appSettings >

 

  <add key="FOLDERARCHIVIO" value="E:\TestFile"></add>

 

  <add key="FOLDERNOMEFILEXCEL" value="E:\NomeFileExcel.xls"></add>

 

  <add key="ARCHIVIAZIONE" value="true"></add>

 

  <add key="NOMEEFOGLIO" value="Foglio1"></add>

 

  <add key="NOMICOLONNEEXCEL" value="A,B"></add>

 

  <add key="RILEVANOMICOLoNNE" value="true"></add>

 

  <add key="NOMETABELLADB" value="Anagrafica"></add>

 

  <add key="CAMPITABELLA" value="Nome, Cognome"></add>

 

  <add key="CONNECTION" value="Data Source=NomeServer;Persist Security Info=True;User ID=UserName;password=Password;"></add>

 

  <add key="PROVIDERNAME" value="System.Data.OracleClient"></add>

 

 

 

 

 

</appSettings>


I parametri sono semplici da comprendere, forse un parametro di non facile comprensione può essere quello relativo al valore “RilevaNomiColonne”, il quale indica che vanno calcolate i veri nomi delle colonne, se per esempio mettiamo A, B, lui rileverà i veri nomi che abbiamo messo nell’intestazione.
Nell’evento click del pulsante o nel load della form o quando viene eseguito l’applicativo di tipo console, scriviamo il seguente codice.

        try

            {

 

 

                string PercorsoArchivio = System.Configuration.ConfigurationManager.AppSettings["FOLDERARCHIVIO"];

                Boolean Archiviazione = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["ARCHIVIAZIONE"]);

                string FolderFileExcel = System.Configuration.ConfigurationManager.AppSettings["FOLDERNOMEFILEXCEL"];

 

                string NomiColonneExcel = System.Configuration.ConfigurationManager.AppSettings["NOMICOLONNEEXCEL"];

                string NomeFoglio = System.Configuration.ConfigurationManager.AppSettings["NOMEEFOGLIO"];

 

 

                Boolean RilevaNomiExcel = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["RILEVANOMICOLONNE"]);

                string NomeTabellaDB = System.Configuration.ConfigurationManager.AppSettings["NOMETABELLADB"];

                string NomiColonneTabellaDB = System.Configuration.ConfigurationManager.AppSettings["CAMPITABELLA"];

                string ConnectionString = System.Configuration.ConfigurationManager.AppSettings["CONNECTION"];

                string ProvviderName = System.Configuration.ConfigurationManager.AppSettings["PROVIDERNAME"];

 

 

 

 

                if (NomiColonneExcel.Split(',').Count() != NomiColonneTabellaDB.Split(',').Count())

                {

                   Messagebox.Show("Il numero dei campi Excel e numero dei campi della tabella non sono uguali, verificare la correttezza dei dati.");

                     

                }

                else

                {

                    //continuo l'elaborazione.

                    string SqlExcel = "SELECT  ";

                    if (RilevaNomiExcel == true)

                    {

                        SqlExcel += GetNameColumn(lFolderFileExcel, lNomeFoglio, NomiColonneExcel);

                    }

                    else

                    {

                        SqlExcel += NomiColonneExcel;

                    }

                    SqlExcel = SqlExcel + " FROM [" + NomeFoglio + "$];";

 

                    EseguiQuery(FolderFileExcel, SqlExcel, NomeTabellaDB, NomiColonneTabellaDB, ConnectionString , ProvviderName);

 

 

                }

 

 

 

 

 

 

 

            }

            catch (Exception ex)

            {

                Messagebox.Show(ex.Message, ex);

                 

            }

 
Come si è visto dal frammento del codice precedente, dopo aver rilevato I dati del file di configurazione, si crea la query sql da eseguire sul file Excel, come se fosse a tutti gli effetti una tabella di database, per la query select, viene generato verificando l’effettivo nome delle colonne, il tutto tramite la funzione “GetNameColumn”.
Mentre la funzione EseguiSql, esegue l’operazione di importazione dati.
Vediamo in dettaglio le varie funzioni ed istruzioni.
La funzione GetNameColumn, riportato qui di seguito, accetta tre parametri, il nome del file, il foglio su cui effettuare la connessione e quali colonne prendere in esame (a,b), separati dalla virgola,
Il codice estrapola i vari nomi delle colonne, che corrispondono alle intestazione di colonne, che abbiamo impostato inizialmente quando si è creato il file Excel, in A1 abbiamo inserito “Nome” ed in B1 “cognome.
Ogni colonna è racchiusa tra parentesi quadrate, perché nel caso che sono presenti colonne con spazi, questo le considera come nomi colonne.
Qui di seguito si riporta il codice completo di tale funzione.



private static string GetNameColumn(string pPercorsoNomeFileExcel, string pNomeFoglio, string pLetteraColonna)

        {

 

            const string cLettereExcel = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //26

            DataTable pColonne = new DataTable();

            string NomeColonna = "";

            string strConnectionString = "";

            if (pPercorsoNomeFileExcel.Trim().EndsWith(".xlsx"))

                strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";", pPercorsoNomeFileExcel);

            else if (pPercorsoNomeFileExcel.Trim().EndsWith(".xls"))

            {

                strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes\";", pPercorsoNomeFileExcel);

            }

 

            using (OleDbConnection Connection = new OleDbConnection(strConnectionString))

            {

                Connection.Open();

 

                OleDbDataReader Record;

 

                OleDbDataAdapter DtaQuery = new OleDbDataAdapter("Select top 1 * from [" + pNomeFoglio + "$]  ;", Connection);

                DataTable DttDati = new DataTable();

                DtaQuery.Fill(DttDati);

 

                string[] Colonne = pLetteraColonna.Split(',');

 

                for (int ContaColonne = 0; ContaColonne < Colonne.Length; ContaColonne++)

                {

                    if (ContaColonne > 0)

                    {

                        NomeColonna += ",";

                    }

                    int Indice = -1;

                    if (Colonne[ContaColonne].Trim().Length > 1)

                    {

                        for (int ContaElementi = 0; ContaElementi < lColonne[ContaColonne].Length; ContaElementi++)

                        {

                            if (ContaElementi > 0)

                            {

                                Indice += 25 + cLettereExcel.IndexOf(Colonne[ContaColonne].Trim().Substring(ContaElementi + 1));

                            }

                            else

                            {

                                Indice = cLettereExcel.IndexOf(lColonne[ContaColonne].Trim().Substring(ContaElementi + 1)) + 1;

                            }

 

                        }

                    }

                    else

                    {

                        Indice = cLettereExcel.IndexOf(lColonne[ContaColonne].Trim());

                    }

                    NomeColonna += "[" +  DttDati.Columns[Indice].ColumnName.Trim() + "]";

                }

                Connection.Close();

            }

 

            return NomeColonna;

        }

La funzione EseguiQuery, che accetta come argomenti, il nome del file Excel, la query SQL da eseguire su Excel, il nome della tabella e nome dei campi su cui eseguire l’inserimento, la stringa di connessione per collegarsi al database ed il tipo di Database.
La funzione effettua un colleganto al file Excel, ed esegue l’istruzione SQL per Excel, che gli viene passata, per ogni record che viene trovato, genera il codice sql di tipo Insert, da eseguire sul database Oracle (oppure su altro database) tramite la funzione “GetQueryInsertDB” , a questo punto viene eseguita la funzione EseguiInsert, che restituisce 0 nel caso che non ha buon esito, oppure 1 in caso di inserimento.
Qui di seguito si riporta la descrizione di tale funzione.



  private static void EseguiQuery(string pPercorsoNomeFileExcel, string pQueryExcel, string pNomeTabellaDB, string pCampiDB, string pConnectionString, string pProviderName)

        {

 

            try

            {

 

                string strConnectionString = "";

                if (pPercorsoNomeFileExcel.Trim().EndsWith(".xlsx"))

                    strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES\";", pPercorsoNomeFileExcel);

                else if (pPercorsoNomeFileExcel.Trim().EndsWith(".xls"))

                {

                    strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;MaxScanRows=1;\";", pPercorsoNomeFileExcel);

                }

 

                using (OleDbConnection Connection = new OleDbConnection(strConnectionString))

                {

                    Connection.Open();

 

                    OleDbDataReader Record;

 

 

                    OleDbCommand Query = new OleDbCommand(pQueryExcel);

                    Query.Connection = Connection;

                    Record = Query.ExecuteReader();

                    DataTable DttDatiRisultato = new DataTable();

                    DttDatiRisultato.Load(lRecord);

 

                    string QueryInsert = "";

                    foreach (DataRow Elemento in DttDatiRisultato.Rows)

                    {

 

 

                        QueryInsert = GetQueryInsertDB(pNomeTabellaDB, pCampiDB, Elemento);

 

                        //Eseguo la query

 

                        if (EseguiInsert(pConnectionString, pProviderName, QueryInsert) > 0 )

                        {

                            Messagebox.Show("Record inserito correttamente."  );

                        }

                        else

                        {

                            Messagebox.Show("Record non inserito.");

                        }

 

 

 

                    }

 

 

 

                }

            }

            catch (Exception ex)

            {

 

                throw ex;

            }



La funzione GetInsertQueryDB, che accetta come argomenti il nome tabella e nomi colonne, oltre ad un oggetto di tipo DataRow, nel quale sono presenti i valori da inserire nella base dati, genera l’istruzione SQL che servirà ad inserire i dati nella tabella.
Qui di seguito si riporta tale funzione.


private static string GetQueryInsertDB(string pNomeTabella, string pNomiColonneDB, DataRow pRigaValori)

        {

 

            string NomeColonna = "";

            string ValoreColonna = "";

 

            string[] NomiColonne = pNomiColonneDB.Split(',');

 

            for (int ContaElementi = 0; ContaElementi < NomiColonne.Length; ContaElementi++)

            {

                NomeColonna += lNomiColonne[ContaElementi] + ",";

                ValoreColonna += "'" + pRigaValori[ContaElementi] + "',";

            }

 

            NomeColonna = lNomeColonna.Substring(0, NomeColonna.Length -1);

            ValoreColonna = lValoreColonna.Substring(0, ValoreColonna.Length -1);

 

 

 

            return "INSERT INTO " + pNomeTabella + " (" + NomeColonna +") VALUES (" + lValoreColonna + ")";

       

       

        }


Siamo giunti all’ultima funzione, quella che permetterà di eseguire l’istruzione SQL di tipo Insert per inserire i valori nella base dati.
Utilizzando le classi messe a disposizione da EnterpriseLibray, possiamo utilizzare questo codice, su diversi database, ci basterà cambiera il tipo di provvider e connessione, nel file di configurazione.
La funzione accetta come parametri,  la stringa di connessione, il tipo di provvider, e l’istruzione SQL. Tramite il metodo “ExecuteNonQuery” viene restituto il numero dei record inseriti (1) oppure in caso di errore, nessuno (0).

    int EseguiInsert(string Connection, string ProviderName, string Query)

        {

            int Return = 0;

            DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(ProviderName);

 

            Database db = new GenericDatabase(Connection, dbProviderFactory);

 

            DbCommand DBCommand = default(DbCommand);

 

            DBCommand = db.GetSqlStringCommand(Query);

 

            Return = db.ExecuteNonQuery(DBCommand); 

 

            return Return;

 

        }


Conclusioni

In questo articolo abbiamo visto come possiamo realizzare una semplice applicazione di grande aiuto con notevole flessibilità ed adattabilità.
Tramite i parametri situati nel file di configurazione, possiamo inserire i dati presi da un file Excel ed inserirli in una tabella Oracle, senza rimettere codice, oppure cambiando il tipo di provider inserire in altri database, come in Sql Server, senza anche in questo caso rimettere mano nel codice.
Può tornare utile in quei scenari, in cui si devono importare diverse righe di Excel, su un database Oracle o altro.