Oppure

Loading
05/02/23 23:26
Carlo
Postato originariamente da pacifico:
Anzichè trascrivere i vari codici e per non creare eventuali errori (copia ed incolla), posso inviare il file zippato?

Creo la parte che non funziona.

Domenico.


Si, allega pure...:k:
in programmazione tutto è permesso
06/02/23 7:35
pacifico
Buongiorno Carlo,

mi scuso del ritardo, ho avuto problemi con il server invio il link del file.

Ringrazio per la pazienza e fiducioso, auguro una buona giornata.

Domenico.

mediafire.com/file/l8sbc1lle52etdg/Somma+delle+colonne.7z/…

noto che non appare il finale .7z/file ed l'inizio www.
Ultima modifica effettuata da pacifico 06/02/23 8:01
aaa
06/02/23 8:43
Carlo
Nello zip non vedo i file .xml che dovrebbero essere caricati.

I tuoi zip allegali qui. Quando rispondi sotto c'è: seleziona un file da allegare.
Ultima modifica effettuata da Carlo 06/02/23 8:44
in programmazione tutto è permesso
06/02/23 9:21
pacifico
Gent.mo Carlo,

ringrazio per la tempestività.

allego la cartella dove sono salvati i file Xml.

Detta cartella è creata in:
AppData>Roaming>GestioneOperazioni ed all'interno ci sono 3 cartelle: Documenti>Nomi>TabellaATabellaB.
Domenico
Scusa non trovo Allega file invierò il link.
mediafire.com/file/hkolfqgwbx2q9z1/GestioneOperazioni.7z/…
Ultima modifica effettuata da pacifico 06/02/23 9:29
aaa
06/02/23 13:30
Carlo
L'errore è di concetto, nella tabella carichi dei numeri con la virgola che non possono essere convertiti in interi.
E' sufficiente fare la conversione in double, oppure se vuoi gli interi, nell'xml i numeri devono essere senza virgola o arrotondati all'intero più vicino prima di inserirli in tabella.

Il codice con la conversione in double double.TryParse

private void Carica_TabellaA()
{
     DataGridView.Rows.Clear();

     string[] elementi_passati = new string[Percorso.Conta_numero_elementi_TabellaA()];

     elementi_passati = Percorso.Carica_contenuto_elementiTabellaA();
     for (int y = 0; y < elementi_passati.Length; y++)
     {
          XmlDocument DocumentoXml = new XmlDocument();
          DocumentoXml.Load(elementi_passati[y]);
          string idContatto = System.IO.Path.GetFileNameWithoutExtension(elementi_passati[y]);
          XmlNode nodotextbox5 = DocumentoXml.DocumentElement.SelectSingleNode("/contatto/textbox5");
          XmlNode nodotextbox6 = DocumentoXml.DocumentElement.SelectSingleNode("/contatto/textbox6");
          XmlNode nodotextbox7 = DocumentoXml.DocumentElement.SelectSingleNode("/contatto/textbox7");
          XmlNode nodotextbox8 = DocumentoXml.DocumentElement.SelectSingleNode("/contatto/textbox8");

          string[] nuovarigaA = { idContatto, nodotextbox5.InnerText, nodotextbox6.InnerText,
                                                   nodotextbox7.InnerText, nodotextbox8.InnerText };

          DataGridView.Rows.Add(1, " ", nodotextbox5.InnerText);
          DataGridView.Rows.Add(2, " ", nodotextbox6.InnerText);
          DataGridView.Rows.Add(3, " ", nodotextbox7.InnerText);
          DataGridView.Rows.Add(4, " ", nodotextbox8.InnerText);


          double Totale = 0; //double
          for (int i = 0; i < DataGridView.Rows.Count; i++)
          {
               double col2 = 0; //double 
               //tentativo di conversione da string a double
               if (double.TryParse(DataGridView.Rows[i].Cells["Tabella A"].Value.ToString(), out col2))
               {
                    Totale += col2; // se la conversione è andata a buon fine
               }
          }
          DataGridView.Rows.Add(5, "Totale", Totale);
     }
}
Ultima modifica effettuata da Carlo 06/02/23 14:43
in programmazione tutto è permesso
06/02/23 15:19
pacifico

Gent.mo Carlo,

Risolto, grazie della disponibilità soprattutto della pazienza.

Buon pomeriggio.

Domenico.
aaa
15/02/23 8:08
pacifico
Buongiorno,

sono a chiedere una cortesia riguardo la somma alla colonna del DataGrdiView che viene popolata dai valori numerici compreso i decimali con file Xml.
Inserendo i numeri interi, la somma risulta perfetta viceversa inserendo i numeri decimali, no.
Per i numeri decimali ho inserito:
5.23+6+45.12+5.24+3.21 e la somma dovrebbe essere di: 64.80 mentre risulta: 5886.
Il codice usato grazie a Carlo che saluto:

double Totale = 0;
for (int i = 0; i < DataGridView.Rows.Count; i++)
{
   double col2 = 0;  
//tentativo di conversione da string a double
if (double.TryParse(DataGridView.Rows[i].Cells["Tabella A"].Value.ToString(), out col2))
{
 Totale += col2; // se la conversione è andata a buon fine
}
}
DataGridView.Rows.Add(6, "Totale", Totale);

per il codice riguardo ai numeri interi:

Int Totale = 0;
for (int i = 0; i < DataGridView.Rows.Count; i++)
{
  int col2 = 0;
//tentativo di conversione da string a int
if (int.TryParse(DataGridView.Rows[i].Cells["Tabella A"].Value.ToString(), out col2))
{
 Totale += col2; // se la conversione è andata a buon fine
}
}
DataGridView.Rows.Add(6, "Totale", Totale);

Gentilmente per modificare i codici per la visualizzazione al totale delle migliaia e decimali. (#,##0,###).

Ringrazio anticipatamente e fiducioso, saluto.
Domenico.

aaa
15/02/23 10:00
Thejuster
Evita di usare double.
usa i decimali.

decimal d1 = 0.70m; // 70 centesimi
decimal d2 = 1.54m; // 1.54 euro
decimal d3 = 7.45m; // 7.45 euro

decimal tot = d1 + d2 + d3;

MessageBox.Show($"Il Totale è {tot} € ");
mire.forumfree.it/ - Mire Engine
C# UI Designer