Buogiorno a tutti, sto sviluppando una applicazione Windows Form con Visual Basic 2008;
tale applicazione deve leggere un file in formato XML ed estrarne i dati (per questo utilizzo Linq-to-XML), il mio problema è il seguente..
ammettendo di avere questo contenuto nel mio file XML
<?xml version="1.0" encoding="utf-8" ?>
<Contatti>
<Contatto Nome="Luciano" Citta="Padova"/>
<Contatto Nome="Maurizio" Citta="Milano"/>
<Contatto Nome="Renato" Citta="Varese"/>
<Contatto Nome="Sergio" Citta="Vicenza"/>
</Contatti>
Mostro una maschera nella quale compaiono 2 text-box una per il Nome(txt1) ed una per la Citta(txt2), sulla base di quanto inserito nelle textbox, devo generare una query per l'estrazione dei dati dal file, es:
Dim doc As XDocument = XDocument.Load("contatti.xml") ' caricamento del file
if (txt1.text.trim.length > 0)
Dim res = From persona In doc...<Contatti>.<Contatto> _
Select Nome = persona.@Nome, Città = persona.@Città _
Where persona.@Nome = txt1.text
End If
if (txt2.text.trim.length > 0)
Dim res = From persona In doc...<Contatti>.<Contatto> _
Select Nome = persona.@Nome, Città = persona.@Città _
Where persona.@Citta= txt2.text
End If
if (txt1.text.trim.length > 0 && txt2.text.trim.length > 0 )
Dim res = From persona In doc...<Contatti>.<Contatto> _
Select Nome = persona.@Nome, Città = persona.@Città _
Where persona.@Nome = txt1.text _
And persona.@Citta= txt2.text
End If
questo approccio è però scorretto in quanto dovrei controllare ogni singola casistica delle textbox presenti e se dovessi averne un numero elevato, dovrei scrivere centinaia di If .... End If
come potrei risolvere questo problema e generare una query in modo dinamico?
Graize,
Matteo