Ciao,
attento che quando crei la connessione, non viene aperta, quindi non ti da errore,quindi dentro al try-catch, devi invocare il metodo "Open" della variabile dbconnection che hai creato, per avere l'errore di accesso.
Cmq sia, io userei il metodo apposito di sql che ti fa il discovery delle istanze disponibili della rete in quel momento, quindi senza preoccuparmi di tentare la connessione per vedere se è disponibile, puoi usare "SqlDataSourceEnumerator.Instance.GetDataSources()" per avere una lista di istanze.
Io avevo usato un codice di questo tipo su una combo, quando l'utente la apre (evento "DropDown") viene popolata con il nome delle istanze disponibili:
private void sqlComboBox_DropDown(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
try
{
sqlComboBox.DataSource = SqlDataSourceEnumerator.Instance.GetDataSources();
sqlComboBox.DisplayMember = "ServerName";
}
catch { }
Cursor.Current = Cursors.Default;
}
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo