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
Utilizzo della progressbar durante la scrittura di un file
venerdì 03 novembre 2006 - 17.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
ven 3 nov 2006 - 17:13
Ciao Ragazzi,
io devo leggere dei dati da un db sql server e scriverli in un file TXT (non c'è problema). Solo che per rendere + bella la parte grafica avevo deciso di utilizzare una progressbar per far visualizzare la scrittura dei dati nel file.
Allora per determinare il valore massimo che la progressbar deve avere ho pensato di fare sempre sulla stessa tabella da cui devo prelelvare i dati da scrivere un count sql per determinare il numero di righe che prenderò e attribuirlo al valore massimo della progress e poi farei un'altra select per prelevare effettivaemnte i dati dalla tabella...
Secondo voi va bene questa idea o esiste in vbnet 2005 un metodo migliore?
Grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 3 nov 2006 - 22:25
>Allora per determinare il valore massimo che la progressbar deve
>avere ho pensato di fare sempre sulla stessa tabella da cui devo
>prelelvare i dati da scrivere un count sql per determinare il
>numero di righe che prenderò e attribuirlo al valore massimo
>della progress e poi farei un'altra select per prelevare effettivaemnte
>i dati dalla tabella...
Ciao Fabio,
mi sembra una soluzione buona. Visto che però immagino utilizzerai un DataSet prima di salvare i dati su disco, puoi evitare di fare la Count perchè accedendo in questo modo:
ds.Tables(0).Rows.Count
puoi sapere il numero di righe contenute nel DataSet nella Tabella con Indice 0 ed avere contemporaneamnete già pronti i dati.
(salteresti un passaggio di fatto)
ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
sab 4 nov 2006 - 12:58
Ragazzi...scusate se mi intrometto ma ho un dubbio su una cosa simile alla quale non ho mai trovato soluzione.
In questo caso, l'operazione di cui visualizzare l'andamento mediante la progress bar è la scrittura su di un file, per cui sapendo il numero di righe della tabelle e scrivendo nel file una riga alla volta si risolve facilmente. Il problema al quale non ho trovato soluzione invece riguarda la visualizzazione di una progress bar durante il caricamento dei dati dal database. Il fatto è che, eseguendo un'istruzione di select che restituisce in una sola volta i dati in un dataset, non ho trovato modo di visualizzare l'andamento progressivo dell'operazione. Diciamo che, se il database è in locale, per quanto grande possa essere la quantità di dati, l'operazione avviene molto velocemente e non c'è bisogno di una progress bar. Immaginate, però, il caso in cui l'applicazione locale ricava i dati da un web service remoto che legge i dati da un database remoto....le cose sono diverse....cosa ne pensate ?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 6 nov 2006 - 10:32
>Immaginate, però, il caso
>in cui l'applicazione locale ricava i dati da un web service
>remoto che legge i dati da un database remoto....le cose sono
>diverse....cosa ne pensate ?
Apri un Thread in cui lanci la procedura di recupero dati da una sorgente remota.
Il Thread ti consente di mantenere "live" la tua applicazione. Senza Thread si bloccherebbe fino a quando non sono arrivati i dati. Appena dopo l'apertura del Thread puoi far apparire una scritta tipo "caricamento dati... attendere" che scompare una volta che sono arrivati i dati.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
lun 6 nov 2006 - 13:26
questo sicuramente...ma io non volevo il semplice messaggio di attesa ma una progress bar...ma purtroppo mi sa che è impossibile...
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 6 nov 2006 - 14:11
>questo sicuramente...ma io non volevo il semplice messaggio di
>attesa ma una progress bar...ma purtroppo mi sa che è impossibile...
No, non è possibile. Neanche nel Query Analyzer c'è la barra del progresso. Vai in "Waiting..." fino a quando non vengono restituiti i dati. Sia con la SELECT che con la DELETE o l'UPDATE non puoi avere una barra di progresso, a meno chè selezioni, cancelli o aggiorni un record alla volta, ma sarebbe da pazzi.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
paolopat
Profilo
| Junior Member
141
messaggi | Data Invio:
lun 6 nov 2006 - 21:09
A questo punto credo di aver avuto la conferma definitiva di ciò che pensavo....grazie mille....sei stato disponibilissimo.
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 !