Member 13795093 Ответов: 1

Как получить базы данных с выбранного сервера в combobox C# visual studio


У меня есть 2 комбобокса, в первом поле я добавил меня в списке серверов....В моем втором поле со списком я хочу, чтобы получить список баз данных для конкретного сервера....Пожалуйста, вы можете предложить мне код для вставки списка базы данных во втором поле со списком?.....мой код для выбора списка серверов в поле со списком это

DataTable dt = SqlDataSourceEnumerator.Instance.GetDataSources();
           for (int i = 0; i < dt.Rows.Count; i++)
           {
               if ((dt.Rows[i]["InstanceName"] as string) != null)
                   comboBoxServer.Items.Add(dt.Rows[i]["ServerName"] + "\\" + dt.Rows[i]["InstanceName"]);
               else
                   comboBoxServer.Items.Add(dt.Rows[i]["ServerName"]);
           }


Что я уже пробовал:

Я уже пробовал этот код


string conString = "server=xeon;uid=sa;pwd=manager; database=northwind";

    using (SqlConnection con = new SqlConnection(conString))
    {
        con.Open();

        // Set up a command with the given query and associate
        // this with the current connection.
        using (SqlCommand cmd = new SqlCommand("SELECT name from sys.databases", con))
        {
            using (IDataReader dr = cmd.ExecuteReader())
            {
                while (dr.Read())
                {
                    list.Add(dr[0].ToString());
                }
            }
        }
    }
    return list;

1 Ответов

Рейтинг:
2

Wendelius

Насколько я вижу, все остальное в порядке, за исключением того, что у вас есть постоянная строка подключения. Чтобы извлечь базы данных с выбранного сервера, используйте имя сервера из выбранного элемента в первом поле со списком. Другими словами что-то вроде

string conString = "server=" + servercombo.SelectedItem.ToString() + ";uid=sa;pwd=manager";

Кроме того, если у вас нет одинаковых имени пользователя и пароля для всех серверов, вам необходимо запросить имя пользователя и пароль для использования. Другой вариант-использовать интегрированную безопасность, если это более осуществимо.