Изменение вида данных при выборе значения в выпадающем списке - PullRequest
0 голосов
/ 22 декабря 2018

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

Это привязка winform C # с mssql.

Мое представление таблицы данных, связанное с

RegistrationEvent.BibNumber,RegistrationEvent.RaceTime,User.FirstName,User.LastName, Runner.CountryCode.

Таблица User содержит Email, FirstName, LastName

Таблица Runnercontain Email, Gender, CountryCode

Таблица RegistrationEvent содержит BibNumber, RaceTime, EventId

Таблицы Marathon и RegistrationEvent, связанные через таблицу Event, содержат MarathonId, EventName, EventId

Мой комбинированный список, связанный с tb Marathon, содержит MarathonId, MarathonName, CityName, CountryCode, YearHeld.

Отображаемое значение элемента Combobox MarathonNameсодержать марафон 2011, марафон 2012, марафон 2013, марафон 2014, марафон 2015.

Я хочу, чтобы, когда я выбираю 1 из этих отображаемых элементов, сетка данных с изменениями в соответствии со списком

Этодля связывания сетки данных с конкретными таблицами и столбцами:

private void buttonQueryDb_Click(object sender, EventArgs e)
    {
        using (SqlConnection sqlCon = new SqlConnection(connectionString))
        {
            sqlCon.Open();
            SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT [RegistrationEvent].[BibNumber], [RegistrationEvent].[RaceTime], [User].[FirstName], [User].[LastName], [Runner].[CountryCode] " +"FROM [User], [Runner], [RegistrationEvent] WHERE[User].Email = [Runner].Email AND [RegistrationEvent].RegistrationEventId = [Runner].RunnerId AND [RegistrationEvent].RaceTime IS NOT NULL", sqlCon);
            DataTable dtbl = new DataTable();
            sqlDa.Fill(dtbl);
            dgv1.DataSource = dtbl;
            dgv1.ReadOnly = true;
            dgv1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
        }
    }

Это для связывания комбинированного списка с таблицей

using (Model1 db = new Model1())
        {
            db.Configuration.ProxyCreationEnabled = false;
            marathonevent.DataSource = db.Marathons.ToList();
            marathonevent.ValueMember = "MarathonName";
            marathonevent.DisplayMember = "MarathonName";

        }

Я использовал это для заполнения сетки данных с помощью комбинированного списка

 private void marathonevent_SelectionChangeCommitted(object sender, EventArgs e)
    {
        Marathon obj = marathonevent.SelectedItem as Marathon;

        using (Model1 db = new Model1())
        {
            db.Configuration.ProxyCreationEnabled = false;
            var query = (from ccode in db.Runners
                         where ccode.CountryCode == obj.CountryCode
                         select new { Country = ccode.Country });
            dgv1.DataSource = query.ToList();
        }

Это показывает только данные из таблицы Runner, поэтому я использовалэто:

private void marathonevent_SelectionChangeCommitted(object sender, EventArgs e)
    {
       Marathon obj = marathonevent.SelectedItem as Marathon;

            using (Model1 db = new Model1())
            {
                db.Configuration.ProxyCreationEnabled = false;
                var query = (from ccode in db.Runners 
                            from fn in db.Users
                            from ln in db.Users
                            from bib in db.RegistrationEvents
                            from rctime in db.RegistrationEvents
                            where ccode.CountryCode == obj.CountryCode
                            select new { Country = ccode.Country, User = fn.FirstName,ln.LastName, RegistrationEvent = bib.BibNumber, rctime.RaceTime}) ;
                dgv1.DataSource = query.ToList();
                dgv1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

winform замораживается

Я хочу выбрать значение в MarathonName, и представление данных будет меняться в соответствии со значением в выпадающем списке, показывая данные.Все эти данные объединены в mssql.

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