Текущие данные из БД в DataGridViewComboboxColumn c#

78
12 сентября 2021, 16:30

Есть таблица d__RenderedServiceBody, в которой имеются внешние ключи к таблицам Продукты и Услуги.

Мне нужно вывести данные из d__RenderedServiceBody, в dataGridView, и заменить столбцы Product_ID, ServiceCost_ID на DataGridViewComboboxColumn. Код ниже, где я вывожу просто значения из внешних таблиц, но мне нужно вывести значения в combobox, которые выставлены по внешним ключам Product_ID и ServiceCost_ID ?

    private void GetData()
    {
        string ID = "select ID from d__RenderedServiceHead where NUM = " + 
        GetStatus;
        DataTable GetIDDT = DbConnection.DBConnect(ID);
        string GetDocument = "exec dbo.GetRenderedServiceBody_v1 " + 
        GetIDDT.Rows[0][0].ToString();
        DataTable GetDocumentDT = DbConnection.DBConnect(GetDocument);
        dataGridView1.DataSource = GetDocumentDT;
        dataGridView1.Columns[0].Visible = false;
        //Продукты
        string GetProduct = "select * from d__Product";
        DataTable GetProductDT = DbConnection.DBConnect(GetProduct);
        DataGridViewComboBoxColumn ProductComboBox = new 
        DataGridViewComboBoxColumn();
        ProductComboBox.DataSource = GetProductDT;
        ProductComboBox.FlatStyle = FlatStyle.Flat;
        ProductComboBox.HeaderText = "Продукт";
        ProductComboBox.Name = "ProductComboBox";
        ProductComboBox.DisplayMember = "Name";
        ProductComboBox.ValueMember = "ID";
        ProductComboBox.DataPropertyName = "Product_ID";
        dataGridView1.Columns.Add(ProductComboBox);
        //Услуги
        string GetService = "select * from d__ServiceCost";
        DataTable GetServiceDT = DbConnection.DBConnect(GetService);
        DataGridViewComboBoxColumn ServiceComboBox = new 
        DataGridViewComboBoxColumn();
        ServiceComboBox.DataSource = GetServiceDT;
        ServiceComboBox.FlatStyle = FlatStyle.Flat;
        ServiceComboBox.HeaderText = "Услуга";
        ServiceComboBox.Name = "ServiceComboBox";
        ServiceComboBox.DisplayMember = "ServiceName";
        ServiceComboBox.ValueMember = "ID";
        ServiceComboBox.DataPropertyName = "ServiceCost_ID";
        ServiceComboBox.DropDownWidth = 300;
        ServiceComboBox.Width = 300;
        dataGridView1.Columns.Add(ServiceComboBox);
    }

Подскажите, пожалуйста, как это сделать?

Answer 1

при клике на столбец в конкретной строке вам надо делать запрос в базу по ID и заполнять Combobox данными из базы

READ ALSO
почему под суперюзером не смогу адекватно отлавливать ошибки и в ходе использования ПО c ssh-клиента

почему под суперюзером не смогу адекватно отлавливать ошибки и в ходе использования ПО c ssh-клиента

Есть программа подключается по ssh к ssh-серверу и заходит на сервер под чёткой супер пользователя

68
Обработка заголовка/header в dataGridView

Обработка заголовка/header в dataGridView

Такая проблема, получаю значения из Excel в dataGridView

104
LINQ-запрос на выборку данных

LINQ-запрос на выборку данных

Мне нужно написать event handler, который удалит всех writer, привязанных к bookНе могу написать LINQ-запрос

68
Как создать копию List<T>?

Как создать копию List<T>?

У меня есть List внутри которого LanguageSet

220