Realizzazione funzione in C# su Visual Studio che legga N Database Acc...

martedì 13 ottobre 2009 - 10.30

aldopoli Profilo | Newbie

Salve a tutti,

desidererei creare in Visul Studio, una funzione in C# che mi chieda il nome del database da processare (ho tanti file .mdb di Access), in cui ogni database ha una stessa tabella la quale rappresenta la tabella di partenza da cui dovrei estrapolare una serie di informazioni pertinenti al mio lavoro.

Esempio:

vorrei avere un ButtonClick che una volta scritto il nome del database, esso si connetta e mi dia il risultato della query della tabella di partenza ( che a me si chiama tblDescrizione)

Grazie a tutti.

aldopoli

alx_81 Profilo | Guru

>Salve a tutti,
Ciao

>desidererei creare in Visul Studio, una funzione in C# che mi
>chieda il nome del database da processare (ho tanti file .mdb
>di Access), in cui ogni database ha una stessa tabella la quale
>rappresenta la tabella di partenza da cui dovrei estrapolare
>una serie di informazioni pertinenti al mio lavoro.
Devi cambiare al volo, ad ogni click, la connection string. Posso darti il consiglio di fare una connection string nel .config della tua applicazione con valori di riferimento, come dei segnaposto:

"Provider={0}; Data Source={1}; User Id={2}; Password={3};"

Poi fai un bello String.Format e vai a fare la replace di quei valori, usando poi la connection string come input per ogni connessione al database.

>Grazie a tutti.
di nulla!
--

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

aldopoli Profilo | Newbie

>Salve a tutti,
Ciao

>desidererei creare in Visul Studio, una funzione in C# che mi
>chieda il nome del database da processare (ho tanti file .mdb
>di Access), in cui ogni database ha una stessa tabella la quale
>rappresenta la tabella di partenza da cui dovrei estrapolare
>una serie di informazioni pertinenti al mio lavoro.
Devi cambiare al volo, ad ogni click, la connection string. Posso darti il consiglio di fare una connection string nel .config della tua applicazione con valori di riferimento, come dei segnaposto:

"Provider={0}; Data Source={1}; User Id={2}; Password={3};"

Poi fai un bello String.Format e vai a fare la replace di quei valori, usando poi la connection string come input per ogni connessione al database.

>Grazie a tutti.
di nulla!




Ciao,

premetto che sono un neofita alle prese con C# e lo strumento Visual Studio.

Il mio problema è che nella directory ho 48 database con tante informazioni, ma caratterizzate dal fatto che ogni database ha una tabella tblDescrizione che è il mio punto di partenza e che contiene due campi NomeTabella e Descrizione.

Per creare un nuovo progetto, sinceramente non so assolutamente cosa scegliere se WebApplication, ConsoleApplication o ecc.ecc., se magari puo darmi qualche indicazione in merito

Quindi quando tu mi dici di apportare modifiche al web.config non so come fare.

Grazie.

alx_81 Profilo | Guru

>Per creare un nuovo progetto, sinceramente non so assolutamente
>cosa scegliere se WebApplication, ConsoleApplication o ecc.ecc.,
>se magari puo darmi qualche indicazione in merito
>Quindi quando tu mi dici di apportare modifiche al web.config
>non so come fare.
Non è importante tanto quale sia il tipo di progetto ma le classi che vai a scrivere. Trattandosi di una logica che definisce una connessione, potresti creare un class library in cui aggiungere una semplice ipotetica classe MyConnectionManager. Al suo interno, puoi pensare di fare un metodo che ti torna una connessione aperta all'iterno del quale, a sua volta, usi una String.Format per andare a cambiare dinamicamente la stringa di connessione:

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

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

ParamDatabasePassato è un parametro del tuo metodo.

Dopo aver creato il metodo della creazione della connessione aperta, puoi pensare ad uno che chiude una connessione che gli passi, per completare l'opera.
Infine, a questo punto, puoi pensare di creare una windows application in cui fai un bel tasto di Sfoglia che lancia una OpenFileDialog per ricavare il database access dalla tua cartella, lo selezioni e alla pressione di un tasto "connetti" chiami questo metodo, passando il path al metodo della classe MyConnectionManager, per cui avrai aggiunto un riferimento nel progetto windows application. In questo modo hai tenuto separato il livello database dall'applicazione e sei completamente autonomo nella scelta del layout e della tecnologia dell'applicazione finale. Ricapitolando:

- crei una classe in cui scriverai metodi di apertura e chiusura connessione
- crei un metodo che torna un OledbConnection aperta usando la String.Format e i suoi placeholder ({0}, {1}, {n}, defininendo posizionalmente i parametri che sostituiranno il seganposto)
- crei un metodo void che chiude la connessione che gli passi
- crei una winapp, o un servizio, o un sito web o una console app che lancia questi metodi all'occorrenza.

spero di esserti stato di aiuto
--

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
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5