/// <summary> /// Return all network servers /// </summary> /// <returns></returns> public static string BrowseNetworkServers() { BrowseForServers dialog = new BrowseForServers(); if (DialogResult.OK == dialog.ShowDialog()) { return(dialog.listBox.Text); } return(""); }
/// <summary> /// Handles the Change event of the Server Name's selection /// </summary> /// <param name="sender">Object that fired the event</param> /// <param name="e">.NET supplied event parameters</param> private void cmbServerName_SelectedIndexChanged(object sender, EventArgs e) { // if last item in list (Browse for Servers) if ((string)cmbServerName.SelectedItem == SharedStrings.BROWSE_FOR_MORE) { string serverName = BrowseForServers.BrowseNetworkServers().ToString(); if (!string.IsNullOrEmpty(serverName)) { this.cmbServerName.Items.Insert(0, serverName); this.cmbServerName.SelectedIndex = 0; cmbDatabaseName.DataSource = null; PreferredDatabaseName = string.Empty; List <String> databases = new List <String>(); using (var con = new SqlConnection("Data Source=" + serverName + ";Initial Catalog=master;Trusted_Connection=yes")) { try { con.Open(); DataTable Databases = con.GetSchema("Databases"); con.Close(); foreach (DataRow databas in Databases.Rows) { databases.Add(databas.Field <String>("database_name")); } } catch (Exception) { } } if (databases.Count > 0) { cmbDatabaseName.DataSource = databases; } /* string database = this.cmbDatabaseName.Text; * Epi.Data.SqlServer.SqlDatabase db = new SqlDatabase(); * * dbConnectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(); * dbConnectionStringBuilder.DataSource = cmbServerName.Text; * dbConnectionStringBuilder.UserID = txtUserName.Text; * if (rdbWindowsAuthentication.Checked) * { * dbConnectionStringBuilder.IntegratedSecurity = true; * } * else * { * dbConnectionStringBuilder.UserID = txtUserName.Text; * dbConnectionStringBuilder.Password = txtPassword.Text; * } * * db.ConnectionString = this.DbConnectionStringBuilder.ToString(); * * try * { * if (db.TestConnection()) * { * this.cmbDatabaseName.Text = string.Empty; * List<string> databaseNamesList = db.GetDatabaseNameList(); * cmbDatabaseName.DataSource = databaseNamesList; * } * else * { * MessageBox.Show("Connection failed."); // TODO: hard coded string. * } * * } * catch (Exception ex) * { * MessageBox.Show("Connection failed: " + ex.Message); // TODO: hard coded string * }*/ return; } this.cmbServerName.SelectedText = string.Empty; } else { string serverName = cmbServerName.Text; if (!string.IsNullOrEmpty(serverName)) { List <String> databases = new List <String>(); cmbDatabaseName.DataSource = null; PreferredDatabaseName = string.Empty; using (var con = new SqlConnection("Data Source=" + serverName + ";Integrated Security=True")) { try { con.Open(); DataTable Databases = con.GetSchema("Databases"); con.Close(); foreach (DataRow databas in Databases.Rows) { databases.Add(databas.Field <String>("database_name")); } } catch (Exception) { } } if (databases.Count > 0) { cmbDatabaseName.DataSource = databases; } } } }