Modificare una OledbConnection

sabato 05 maggio 2012 - 21.26
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio Express  |  Access (.mdb)

olmof Profilo | Junior Member

Hola
Problemino:
dovrei intervenire sulla struttura di diversi database la cui struttura è identica ma hanno nomi e contenuti diversi, in particolare riguardano anni di gestione diversi.
Per mia comodità ho impostato a livello di progetto le variabili che contengono il percorso ed il nome del database.
Nel form, sempre come dichiarazione generale ho inserito:

Dim MyDBAnno As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " & pathMDb & nameMdbAnno)

A questo punto ho pensato di fare un ciclo che mi permetta di cambiare il nome del database ed effettui gli interventi sui database in oggetto. Più precisamente:

For X = 2003 To Year(Now)
nameMdbAnno = "anno_" & Trim(Str(X)) & ".MDB"
Dim MyDBAnno As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " & pathMDb & nameMdbAnno)
If File.Exists(pathMDb & nameMdbAnno) Then
MyDBAnno.Open()
'..... routine per modifica struttura
MyDBAnno.Close()
End If
Next X

Quindi ad ogni giro cambio il nome del database, cambio la OleDbConnection, verifico che il database esista, faccio i cambiamenti e ricomincio.
Mi sembrava non facesse una grinza, ma...

...nel momento in cui arrivo ad eseguire le routine per la modifica struttura ottengo l' errore: "ExecuteScalar richiede una oggetto Connection aperto e disponibile. Lo stato attuale della connessione è chiuso."

La cosa strana è che se non vado a cambiare la variabile nameMdbAnno (che rimane quella dell'anno attuale dichiarata a livello globale di progetto) il tutto funziona.
Avete qualche suggerimento?
Grazie

Gho5t Profilo | Junior Member

Ciao,
non riesco a capire il perché da quell'errore, potresti mettere una if con il controllo se la connessione MyDBAnno è effettivamente aperta e non è chiusa per qualche motivo?
Se un uomo non è disposto a correre qualche rischio per le sue idee, o le sue idee non valgono nulla o non vale nulla lui
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5