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
Database
mercoledì 04 luglio 2007 - 10.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
alan80
Profilo
| Newbie
26
messaggi | Data Invio:
mer 4 lug 2007 - 10:00
Salve a tutti,
sto creando un progetto utilizzando i vari bindingsource e tableadapter per gestire la connessione e l modifica dei dati di un database. Ho visto che la stringa di connessione viene automaticamente salvata all'interno del file Settings. Io vorrei rendere dinamica la stringa di connessione del database. Siccome il settings non é possibile modificarlo (SCOPE = Application) volevo sapere se qualcuno avesse un'idea alternativa per utilizzare la connessione al database.
Grazie mille Jimmy
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 4 lug 2007 - 20:41
Puoi sempre impostare la connessione nel file "myexe.exe.config" prima di eseguire la tua applicazione
Puoi reimostare la connessine nell'evento load o in un altro qualsiasi momento prima dell'apertura del database.
alan80
Profilo
| Newbie
26
messaggi | Data Invio:
gio 5 lug 2007 - 09:54
GRAZIE Mille per la risposta!!
Infatti sapevo che tramite i il file di configurazione si potesse cambiare la connessione al database.
Potresti spiegarmi a codice come é possibile cambiare la connessione??
Grazie mille!!
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 5 lug 2007 - 10:53
Se hai usato il wizard per disegnare il dataset tipizzato dovresti provare a fare una estensione della classe.
Piccolo esempio di estensione:
Namespace dbprovaDataSetTableAdapters
Partial Public Class tableprovaTableAdapter
Public Sub GeneraCommands()
Me.InitCommandCollection()
Dim cn As New MySql.Data.MySqlClient.MySqlConnection(My.Settings.dbprovaConnectionString)
Dim cm As New MySql.Data.MySqlClient.MySqlCommand("SELECT codice, descrizione, valore FROM tableprova", cn)
cn.Open()
Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter(cm)
Dim cmd As New MySql.Data.MySqlClient.MySqlCommandBuilder(da)
Me._adapter = da
Me._commandCollection(0) = cm
Me._connection = cn
Me._commandCollection(1) = cmd.GetDeleteCommand()
Me._commandCollection(2) = cmd.GetInsertCommand()
Me._commandCollection(3) = cmd.GetUpdateCommand()
cn.Close()
End Sub
Public ReadOnly Property MostraCommandCollection() As MySql.Data.MySqlClient.MySqlCommand()
Get
If (Me._commandCollection Is Nothing) Then
Me.InitCommandCollection()
End If
Return Me._commandCollection
End Get
End Property
End Class
End Namespace
Questo ti consente di operare nell'evento load della form
Private Sub MainForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'ho introdotto una frazione della classe helper per poter rigenerare i comandi
'con il commandbuilder, le cazzate introdotte erano già fin troppe
Me.TableprovaTableAdapter.GeneraCommands()
Me.TableprovaTableAdapter.Fill(Me.DbprovaDataSet.tableprova)
AddHandler Me.TableprovaTableAdapter.Adapter.RowUpdated, AddressOf Adapter_RowUpdated
' aggiunto questo per debug
'Dim s As String = String.Empty
'For i As Integer = 0 To 3
' s &= Me.TableprovaTableAdapter.MostraCommandCollection(i).CommandText & Environment.NewLine
'Next
'MessageBox.Show(s)
End Sub
alan80
Profilo
| Newbie
26
messaggi | Data Invio:
gio 5 lug 2007 - 11:09
Ciao Cteniza,
forse non capisco io la tua risposta o forse non hai capito tu la mia richiesta
Io ho creato un progetto, ho creato i miei dataset con il wizard, e visual studio 2005 mi ha generato lui la connessione
al mio database ACCESS
(Es.: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\TestDB\test.mdb")
Se vado ad'installare l'applicativo su di un'altra macchina, e non volgio per forza posizionare il database in C:\TestDB\, ma in
un'altra directory (Es.: C:\Programmi\Applicativo\) come faccio a specificare all'applicativo la nuova posizione, e di conseguenza cambiare la stringa di connessione e salvarla definitivamente?
Quello che vorrei é poter rendere dinamica la stringa di connessione, soprattutto poi se mi connetto a database SQL!!
Spero di essere stato chiaro
Ciaoooo e grazie!!
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
gio 5 lug 2007 - 11:20
Io ti ho solo indicato un esempio di come intervenire lasciando la parte fatta dal wizard senza modifiche.
La mia doveva rigenerare un comando e mi sono fatto un metodo privato per questo.
Tu devi cambiare la connessione ma è analogo.
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 !