Esportare colonna gridview (o select) in file txt

mercoledì 15 aprile 2009 - 23.15

jampicoll Profilo | Junior Member

Ciao a tutti,
ho una piccola necessita
Da una gridview alimentata da una select su db sqlServer, vorrei fare in modo di esportare i dati della colonna e.mail in un file txt con tutti i valori separati da punto e virgola in modo da poterli usare in un programma di posta con un copia/incolla.

Come posso fare?
Giampiero.

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao

>ho una piccola necessita
>Da una gridview alimentata da una select su db sqlServer, vorrei
>fare in modo di esportare i dati della colonna e.mail in un file
>txt con tutti i valori separati da punto e virgola in modo da
>poterli usare in un programma di posta con un copia/incolla.
>Come posso fare?
ma ti serve una tantum oppure è proprio una necessità di applicazione?
Perchè in quel caso, potresti pensare di ciclare le righe del tuo gv per poi comporre una stringa da passare direttamente all'oggetto che si occupa di inviare l'email..

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

jampicoll Profilo | Junior Member

L'applicazione ha un db con degli utenti registrati con un campo mail.
Nella applicazioni ci sono due gridview (una con tutti gli utenti e una con gli utenti filtrati da una select)
Siccome mi serve inviare delle comunicazioni agli utenti vorrei esportarmi il campo mail di tutti gli utenti selezionati in un file txt seratati da "punto e virgola" cosi da poterli usare in un comune programma di posta.

Se poi le mail le devo uscire dalla gridview o da una select per me è uguale.
Giampiero.

alx_81 Profilo | Guru

>Nella applicazioni ci sono due gridview (una con tutti gli utenti
>e una con gli utenti filtrati da una select)
>Siccome mi serve inviare delle comunicazioni agli utenti vorrei
>esportarmi il campo mail di tutti gli utenti selezionati in un
>file txt seratati da "punto e virgola" cosi da poterli usare
>in un comune programma di posta.
Ho capito quello che avevi indicato nel primo post, ma vorrei capire anche se puoi cambiare approccio.
Come mai vuoi copiaincollare gli indirizzi quando puoi fare tutto dall'applicazione?
Comunque, per esportare il txt, devi ciclare sul tuo gridview (puoi usare l'evento rowdatabound della gridview salvandoti di volta in volta i dati nel file direttamente).

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

jampicoll Profilo | Junior Member

credevo che facendo in questo modo, cioè esportando gli indirizzi tramite select in un file txt sarebbe stato piu semplice che creare un sistema di invio mail direttamente dall'applicazione.
Non sono tanto esperto quindi volevo prendere la via piu semplice...
Giampiero.

alx_81 Profilo | Guru

>credevo che facendo in questo modo, cioè esportando gli indirizzi
>tramite select in un file txt sarebbe stato piu semplice che
>creare un sistema di invio mail direttamente dall'applicazione.
è di sicuro più semplice ma meno comodo..
Per trovare una via di mezzo, potresti usare l'evento rowdatabound (che viene lanciato per ogni riga del tuo gv) e concatenare ad una variabile stringa (con scope di classe, e quindi della pagina) i valori dell'email, separati dal tuo carattere ";". Poi, creare un <a> il cui href è uguale a "mailto:" + la tua stringa.
In questo modo ti troveresti un link sulla pagina che, se premuto, fa comparire il tuo client di posta con già i valori desiderati nel TO/A.

qui hai la reference all'evento:
http://msdn.microsoft.com/it-it/library/system.web.ui.webcontrols.gridview.rowdatabound(VS.80).aspx

è semplice da implementare, prova intanto a gestire l'evento e se non riesci, ti allego un esempio di codice.
ciao!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

jampicoll Profilo | Junior Member

sarebbe perfetto...
provo, vediamo cosa riesco a fare.
Ma credo che dovro chiedere l'aiuto del pubblico.!!!

Grazie

Giampiero.

alx_81 Profilo | Guru

>sarebbe perfetto...
>provo, vediamo cosa riesco a fare.
>Ma credo che dovro chiedere l'aiuto del pubblico.!!!
prova e vai tranquillo che il pubblico c'è sempre
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

jampicoll Profilo | Junior Member

Ho provato a farlo ma non ci riesco.
Se non ho capito male dovrei:
1. creare una stringa
2. tramite il RowDataBound estrarre il campo email della Gridview
3. concatenare i dati nel file separati da ;

Ti chiedo una cortesia (senza urgenza ovviamente):
Potresti farmi un piccolo esempio?

Ti ringrazio
Giampiero.

jampicoll Profilo | Junior Member

non riesco ad esportare i valori della colonna della gridview e concatenarli nella stringa. Potete aiutarmi, grazie
Giampiero.

alx_81 Profilo | Guru

>non riesco ad esportare i valori della colonna della gridview
>e concatenarli nella stringa. Potete aiutarmi, grazie
Puoi postare il tuo gridview?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

jampicoll Profilo | Junior Member

questa è la struttura della gridview

jampicoll Profilo | Junior Member

Ho provato a fare questa funzione per creare la stringa ma ho qualche problema...(forse non qualche...)

vorrei fare un ciclo for che mi scrivi ciclicamente nella stringa l'indirizzo mail.
A parte il fatto della soluzione (non so se è corretta farla con il ciclo for)
non so come prendere il valore di una particolare cella della riga della gridview.

protected void email_Click(object sender, EventArgs e)
{
int n = GridView1.Rows.Count;
int i = 1;
string contatti = "";

for (i = 1; i == n; i++)
{
contatti += GridView1.
}
}

Potete aiutarmi.
GRAZIE
Giampiero.

jampicoll Profilo | Junior Member

Sono riuscito a creare la stringa con i contatti con questa funzione

protected void email_Click(object sender, EventArgs e)
{
int n = (GridView1.Rows.Count);
string contatti = "mailto:";

for (int i = 0; i < n; i++)
{
contatti += ((Label)GridView1.Rows[i].FindControl("Label12")).Text;
contatti += ";";
}

}

adesso con la stessa funzione come posso creare il mailto con lo stesso tasto???

Giampiero.
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5