Stampare il contenuto di una tabella db su file di testo

lunedì 19 ottobre 2009 - 13.22

Bohemian_Rhapsody Profilo | Newbie

Ciao a tutti!
Ho il seguente problema: sto cercando, in C#, di stampare il contenuto di una tabella di un db in un file di testo (.txt), ma non riesco a fare ciò. Ho creato un dataset in cui salvare i dati della tabella che ho estratto con una semplice SELECT. Come posso procedere?

alx_81 Profilo | Guru

>Ciao a tutti!
Ciao

>Ho il seguente problema: sto cercando, in C#, di stampare il
>contenuto di una tabella di un db in un file di testo (.txt),
>ma non riesco a fare ciò. Ho creato un dataset in cui salvare
>i dati della tabella che ho estratto con una semplice SELECT.
Premettendo che ti consiglio di non usare i dataset ma piuttosto di farti i tuoi oggetti per poi popolarli direttamente da file, il discorso rimane il medesimo.
Alla fine un dataset è un insieme di datatable (e altri oggetti che per ora non ti servono). Se hai una sola select, il datatable contenuto nel dataset è proprio il resultset dato da quella query. Basta controllare che dataset abbia un datatable almeno e che quel datatable abbia almeno una riga. Se così è, cicli le righe del datatable con un foreach impostando riga per riga all'interno di un DataRow. Poi scrivi il datarow nel file, attraverso uno StreamWriter. Ti faccio un esempio:

immagina di avere questo resultset

Nome | Cognome | CodiceFiscale | Eta
--------------------------------------------------------------------------------------
Alessandro Alpi LPALSN81D22G337T 28
Alessandra Alpi LPALSN80D52G337T 29
Alessio Alpi LPALSO79D22G337T 30

Proviamo ad immaginare che tu abbia il dataset già popolato con questi dati, ed ora stampiamo su file. Userò anche il namespace System.Text, per avere uno StringBuilder (http://msdn.microsoft.com/en-us/library/system.text.stringbuilder.aspx). Il tutto in C#, una classe di utilità alla quale puoi passare il tuo resultset sostituendo il nome corretto dei campi:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

--

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

Mau67 Profilo | Expert

Ciao Alex, mi interessava questo articolo perchè io dovrei creare con il mio programma in visual studio 2008 linguaggio VB un file in txt che serve per l'accredito tramite procedura informatica degli stipendi.
Non so se conosci la problematica, comunque dovrei far scrivere in posizioni ben precise dei dati presi da una o più tabelle tramite i dataset pensi potresti darmi una mano?

Ciao e grazie in anticipo Maurizio
Mau67

alx_81 Profilo | Guru

>Ciao Alex,
Ciao

>Non so se conosci la problematica, comunque dovrei far scrivere
>in posizioni ben precise dei dati presi da una o più tabelle
>tramite i dataset pensi potresti darmi una mano?
La conosco eccome, ma quando ho fatto tante di queste cose, usavo c oppure vb6
Comunque, credimi è molto semplice. Se i dati, come immagino che sia, li leggi da database, basta usare lo stringbuilder con i suoi metodi AppendFormat e AppendLine per ottenere le righe come vuoi tu.
Prova a leggere questi esempi, e se non ci salti fuori, fatti sentire.
http://msdn.microsoft.com/it-it/library/cb3sbadh.aspx
http://msdn.microsoft.com/it-it/library/hdekwk0b.aspx

>Ciao e grazie in anticipo Maurizio
di nulla!
--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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