Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] Funzioni con un datatable?

Buongiorno a tutti!
Vorrei domandarvi un consiglio su un problema in 
vb.net
 2005 (premetto che
sono un principiante in materia). Ci ho perso tutta la domenica a tentare di
trovare una soluzione, ovviamente senza riuscirci!
-Ho una tabella [Services] in Access: in questa tabella è presente il campo
[serviceDate].
-Scarico da Access la tabella in un datatable tramite il TableAdapter.Fill,
al fine di popolare una datagridview.
-Vorrei anche popolare una combobox con i vari mesi della serviceDate
("dicembre 2005", "gennaio 2006"....), in modo che l'utente possa decidere
quale mese vedere nella griglia (settando la proprietà RowFilter della
griglia), senza che il programma debba accedere, ad ogni
combobox_selectedindexchanged, al database, al fine di effettuare il
download solo del mese prescelto.
Per estrarre i mesi dalla tabella, avevo pensato alla query: SELECT DISTINCT
YEAR(serviceDate) AS yearOfServiceDate, MONTH(serviceDate) AS
monthOfServiceDate FROM Services;
Il problema è che vorrei utilizzare questa query con i dati già scaricati
col Fill nel datatable, e non dover utilizzare un DataReader, riaprendo di
nuovo la connessione!
Oltre alla soluzione del DataReader, avevo pensato anche di far scaricare
nel datatable, oltre a serviceDate, anche il mese e l'anno, inserendo le
funzioni Month e Year direttamente nella query del Fill; ma mi sembra una
pessima soluzione, in quanto, così facendo, nella rete (almeno credo...)
viaggerebbero altre 2 colonne.
Ho provato anche a creare una colonna calcolata nel datatable mediante la
proprietà DataColumn.Expression, ma la sintassi possibile è così limitata!
Per favore, aiutatemi: come dovrei fare?
Grazie!
Andrea 

 nuovo la connessione!
Mi sa che non si può fare. Devi caricarti due datatable, uno con i dati
"completi", e l'altro solo con l'elenco dei "periodi", per quanto riguarda
la connessione, non hai assoluto bisogno di riaprirla, puoi anche aprirla
una sola volta prima di caricare le due tabelle, e chiuderla alla fine,
anche se suppongo che non faccia alcuna differenza: ado non chiude
immediatamente la connessione, e quando tu chiedi di riaprirla in realtà
riutilizzi quella precedente.
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 "completi", e l'altro solo con l'elenco dei "periodi"
E' quello che temevo...
Con VB6, usavo SQL Server: scaricavo i dati che mi servivano con la data 
pump in un db locale Access, e lì facevo tutte le query necessarie.
Questo progettino lo sto facendo per impratichirmi con vb 2005, e devo dire 
che, almeno riguardo alla gestione dati, è cambiato tutto!
Ho provato a fare come mi hai consigliato, anche se mi sono scontrato con un 
altro problema: per poter impostare il RowFilter della datagrid, devo per 
forza avere il mese e l'anno di ogni record già separati, e non soltanto la 
serviceDate...Perciò, alla fine, ho deciso di far scaricare anche il mese e 
l'anno nello stesso datatable, con il fill.
Comunque, grazie mille per la risposta!
Ciao!
Andrea