Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058

    [C#][ERRORE] DataGridView To XML

    Ciao a tutti,
    ho una form contenente una dataGridView nella quale ho messo un solo campo editabile...
    Non è legata a nessun DB ma voglio che sia gestibile manualmente.

    Ho messo un pulsante per il salvataggio dei dati in XML che fa questo:

    codice:
    DataTable dt = new DataTable(); 
    dt = financeGridView.DataSource as DataTable;
    DataSet ds = new DataSet(); 
    ds.Tables.Add(dt);
    ds.WriteXml("C:\\test.xml", System.Data.XmlWriteMode.IgnoreSchema);
    Ma ottengo questo errore:
    codice:
    System.ArgumentNullException: L'argomento 'table' non può essere null.
    Credo di aver intuito sia dovuto al fatto che non ho un DATASOURCE appunto ma ho creato la GridView manualmente.
    Come posso fare quindi? Consigli?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Nessuno ha idee?

  3. #3
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Per "creata manualmente" intendi che hai aggiunto anche le righe via codice?

  4. #4
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    No intendo che ho editato le varie colonne della Griglia tramite le proprietà dell'oggetto, non caricando un DB ... quindi si fondamentalmente con del codice

  5. #5
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Cerco di essere più specifico...
    Il mio DataSource è Null.
    Sto facendo si che la tabella venga compilata manualmente dall'utente...

    Quindi ho le proprietà ROWS e COLUMNS con dentro i corrispondenti elenchi.

    Vorrei salvare tutto in formato XML, ma non posso passare alla variabile DATATABLE il mio datasource perché è vuoto.. come posso ovviare al problema?

  6. #6
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Da quel che sò hai due alternative.
    La prima è quella di dichiarare il dataset e popolarlo aggiungendo colonne e righe dal datagridview.
    La seconda, dichiari il dataset e aggiungi colonne e righe(o leggi da un file xml), poi lo assegni come datasource.
    Ti consiglierei la "seconda" ma senza altre informazioni su come hai impostato il datagridview non so dirti di più.
    Ciao

  7. #7
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Originariamente inviato da Vinsent
    Da quel che sò hai due alternative.
    La prima è quella di dichiarare il dataset e popolarlo aggiungendo colonne e righe dal datagridview.
    La seconda, dichiari il dataset e aggiungi colonne e righe(o leggi da un file xml), poi lo assegni come datasource.
    Ti consiglierei la "seconda" ma senza altre informazioni su come hai impostato il datagridview non so dirti di più.
    Ciao
    Io parto dalla datagridview... che viene compilata ... quindi dovrei ciclare col/righe della DGW, aggiungerli ad un assegnali ad una tabella e fare come facevo prima?

  8. #8
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Ho risolto in 2 modi:
    1) utilizzando il metodo n.2 che mi ha consigliato Vinsent .
    2) Creato un XMLSCHEMA, caricato in un dataset, da qui ad una datatable ed infine assegnata quest'ultima come datasource e questa mi è sembrata la miglior soluzione.

    Ora mi è sorto un altro problema:

    Ho un campo di tipo DATETIME, lo inizializzo con la data odierna ed in automatico me lo formatta cosi GG/MM/AAAA.
    Se edito il campo vorrei prima di tutto che venissero messe in automatico le "/", come posso fare?
    Quale evento è il più idoneo ad intercettare un DataError?

    Grazie

  9. #9
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Dovresti aprire un nuovo topic...
    Comunque, per l' "errore" puoi usare l' evento validating in cui puoi provare a convertire il formato della data immessa in quello voluto.
    Mentre se vuoi inserire automaticamente gli slash mi viene in mente il MaskedTextBox ma non so se il datagridview lo supporta....altrimenti puoi banalmente contare i caratteri e togliere/aggiungere lo slash e ovviamente evitare l' inserimento di caratteri diversi da quelli che si usano per una data.
    Ciao

  10. #10
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Originariamente inviato da Vinsent
    Dovresti aprire un nuovo topic...
    Comunque, per l' "errore" puoi usare l' evento validating in cui puoi provare a convertire il formato della data immessa in quello voluto.
    Mentre se vuoi inserire automaticamente gli slash mi viene in mente il MaskedTextBox ma non so se il datagridview lo supporta....altrimenti puoi banalmente contare i caratteri e togliere/aggiungere lo slash e ovviamente evitare l' inserimento di caratteri diversi da quelli che si usano per una data.
    Ciao
    Volevo evitare questo metodo "barbaro"
    Vedo di trovare una soluzione... grazie ancora.

    p.s. Tanto carino il framework .NET peccato che oltre utilizzi base perfettamente funzionanti non si trova mai un esempio di come fare a livello pratico le cose più banali

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.