Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Prblemi base con file XML
mercoledì 11 gennaio 2006 - 13.40
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fedina_penale
Profilo
| Newbie
4
messaggi | Data Invio:
mer 11 gen 2006 - 13:40
Scusate se può essere una banalità, ma ho appena cominciato a lavorare con VB.NET.
Devo generare da zero un file XML e guardando in giro sono arrivata a queste istruzioni:
Dim path As String = FileSystem.CurDir & "\Config2.XML"
Dim Doc As New XmlDocument()
Doc.AppendChild(Doc.CreateXmlDeclaration("1.0", "iso-8859-1", "yes"))
* NodeNew = Doc.CreateElement("Opzioni")
* Doc.AppendChild(NodeNew)
Doc.Save(path)
Le righe con * le ho inserite, perchè devo creare una root anche con file vuoto.
Il file che mi viene creato ha il seguente listato:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<Opzioni />
Successivamente, per riaprire questo file e andare a popolarlo, uso questi comandi:
Dim path As String = FileSystem.CurDir & "\Config2.XML"
Dim Doc As New XmlDocument()
Dim NodeNew As XmlNode
Dim Node As XmlNode
Node = Doc.DocumentElement
NodeNew = Doc.DocumentElement
NodeNew = Doc.CreateNode(XmlNodeType.Element, "DB_NAME", " ")
NodeNew.InnerText = "PROVA"
Node.AppendChild(NodeNew)
Doc.Save(path)
Il problema è che al momento di eseguirie AppendChild mi da' il seguente errore
"Object reference not set to an instance of an object."
Con il debug, prima di eseguire questa istruzione l'oggetto NodeNew è correttamente valorizzato, mentre dopo ha tutti i valori a null.
Forse il problema deriva dal fatto di non aver eseguito correttamente la generazione iniziale del file?
Potete aiutarmi?
Ciao,
Federica
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 11 gen 2006 - 16:16
> Dim Doc As New XmlDocument()
> Dim NodeNew As XmlNode
> Dim Node As XmlNode
>
> Node = Doc.DocumentElement
>
> NodeNew = Doc.DocumentElement
> NodeNew = Doc.CreateNode(XmlNodeType.Element,
>"DB_NAME", " ")
> NodeNew.InnerText = "PROVA"
> Node.AppendChild(NodeNew)
>
> Doc.Save(path)
>
>Il problema è che al momento di eseguirie AppendChild mi da'
>il seguente errore
>"Object reference not set to an instance of an object."
>Con il debug, prima di eseguire questa istruzione l'oggetto NodeNew
>è correttamente valorizzato, mentre dopo ha tutti i valori a
>null.
Ciao Federica
e benvenuta, così rapidamente mi viene subito da dire che manca il Load del documento. Ti dice Object Reference not set semplicemente perchè l'oggetto Doc è instanziato grazie alla New ma a DocumentElement probabilmente corrisponde il valoer Null.
Bisogna che prima di quell'istruzione tu carichi il file xml con un:
Doc.Load(path);
in questo modo DocumentElement sarà valorizzato e a quel punto salvo altri errori dovrebbe funzionare.
ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
fedina_penale
Profilo
| Newbie
4
messaggi | Data Invio:
ven 13 gen 2006 - 11:44
Grazie!
L'altro giorno, dopo una giornata passata su quelle righe mi era venuto quel dubbio, ma poi non ho più avuto occasione di rifletterci.
In ogni caso sono pressochè incasinata e vi chiedo se sapete darmi qualche indicazione:
Fino al mese scorso lavoravo su VB6. Ora sono a casa in maternità e mio marito, sistemista da poco passato alla programmazione, mi ha meso a (tentare) di fare qualche cosa in .net che io non ho MAI visto (di conseguenza con tutte le lacune di tipo concettuale e filosofico che ne derivano).
Il problema principale è che ho il librone della programmazione di .net 2003, ma sto lavorando sul 2005 (framework 2.0)
e anche sui forum e siti vari mi trovo ad avere esempi che però non mi funzionano (giustamente) e l'help in linea di MS non è sto' granchè.
Sapete indirizzarmi su qualche sito o forum in cui si parla del 2005?
Grazie,
Federica
fedina_penale
Profilo
| Newbie
4
messaggi | Data Invio:
ven 13 gen 2006 - 16:16
OK!
cominciamo con le cose semplici semplici (voi se non avete voglia di rispondere mandatemi pure a quel paese)...
In un mio vecchio progetti vb6, usavo un file xml per memorizzare delle opzioni (ad es nome del db, percorsi per rintracciare file o per salvarli, etc).
Alla prima esecuzione del programma veniva generato un recordset ado che conteneva tanti record quanti erano le opzioni che mi servivano e venivano visualizzati su una semplice griglia in modo che l'utente potesse inserire (o successivamente modificare) i valori corrispondenti.Il tutto poi veniva salvato in file xml con recordset.save (nomefile.xml,adPersistXML).
E' possibile saltare questa parte con i settings di vb.net (2005) (tenendo conto che comunque non so' come funzionano e come vengono gestite, e che vorrei che fossero modificabili con qualche interfaccia dall'utente)?
Per utilizzare al posto di adodb di vb6 ado.net che riferimenti devo agganciare?
E che oggetti posso usare per la visualizzazione in griglia, visto che ho perso un pomeriggio a seguire istruzioni (del 2003) per agganciare un recordset ad un Dataset, che però per il 2005 non funziona?
Ciao,
Federica
fedina_penale
Profilo
| Newbie
4
messaggi | Data Invio:
ven 13 gen 2006 - 16:45
Grazie per l'aiuto e scusate per il disturbo.
Ora smanetto un po' in questo senso.
Ciao
Federica
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !