Sto scrivendo un applicativo per sincronizzare due database: uno locale ed uno remoto; quello locale è un db MSSQL, l'altro è un db MySQL. Per far ciò ho utilizzato il connector di mysql e devo dire che il programma funziona (per ora ho implementato solo la connessione al database remoto) se non fosse per un piccolo dettaglio:
essendo il database remoto, ho necessità di monitorare anche se il dbms è attivo oppure no e quindi visualizzare lo stato di suddetto dbms nella finestra dell'applicazione (sostanzialmente si tratta di un messaggio "Connesso" oppure "Dbms non raggiungibile") solo che se il dbms risulta irraggiungibile il controllo errori viene ignorato e viene generata un'eccezione a runtime.
Il codice che ho al momento implementato è il seguente:
codice:
Dim myConnectionString As String
myConnectionString = "server=127.0.0.1;" _
& "uid=a;" _
& "pwd=a;" _
& "database=b;"
Try
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
conn.Open()
Catch ex As MySql.Data.MySqlClient.MySqlException
Select Case ex.Number
Case 0
LabelStateRemote.Text = "DB Remoto - Errore di connessione"
Case 1045
LabelStateRemote.Text = "DB Remoto - Dati di connessione errati"
End Select
End Try
ed a runtime genera la seguente eccezione (riporto solo le prime righe):
codice:
Le informazioni su come richiamare il debug JIT (Just-In-Time) anziché questa finestra
sono riportate in fondo al messaggio.
************** Testo dell'eccezione **************
System.Net.Sockets.SocketException: Socket non connesso e indirizzo non fornito durante l'invio su un socket di datagramma che utilizza una chiamata sendto. Richiesta di invio o ricezione di dati annullata
at System.Net.Sockets.Socket.Shutdown(SocketShutdown how)
at MySql.Data.Common.SocketStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.BufferedStream.ReadByte()
at MySql.Data.MySqlClient.PacketReader.ReadHeader()
at MySql.Data.MySqlClient.PacketReader.OpenPacket()
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionString settings)
at MySql.Data.MySqlClient.MySqlConnection.Open()
sapete aiutarmi?