ComboBox связан с данными - PullRequest
       6

ComboBox связан с данными

0 голосов
/ 01 декабря 2018

Я делаю проект в Visual Studio и мне нужно подключить Combobox к базе данных.

У меня есть один набор данных:

  1. Audi - модель 1
  2. Audi - модель 2
  3. BMW - M1

Если я выберу Audi в Combobox1, то в Combobox2 будут показаны только модель 1 и модель 2.

1 Ответ

0 голосов
/ 01 декабря 2018

Я полагаю, что вы используете c#, и вы можете отфильтровать результаты для второго раскрывающегося списка на основе первого раскрывающегося списка следующим образом:

private void Combobox1_SelectionChangeCommitted(object sender, EventArgs e)
{
    Combobox2.DataSource = null;
    if (Combobox1.SelectedValue.ToString() != "0")
    {
        string sql = string.Format("SELECT CarModel FROM Table WHERE Car = {0}", Combobox1.SelectedValue);
        Combobox2.DataSource = this.GetData(sql);
        Combobox2.DisplayMember = "CarModel";
        Combobox2.ValueMember = "ModelId"; //if there is an id for each model
        Combobox2.Enabled = true;
    }
}

Функция получения данных:

private DataTable GetData(string sql)
{
    string constr = @"Data Source=.\SQL2014;Initial Catalog=Cascading_ddl;Integrated Security=true"; //modify as per your project
    using (SqlConnection con = new SqlConnection(constr))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter(sql, con))
        {
            DataTable dt = new DataTable();
            sda.Fill(dt);
            DataRow row = dt.NewRow();
            row[0] = 0;
            row[1] = "Please select";
            dt.Rows.InsertAt(row, 0);
            return dt;
        }
    }
}

PS: я упомянул Combobox1, Combobox2 просто для контекста, вы должны рассмотреть правильное соглашение об именах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...