Проблемы привязки ComboBox в C # DataGridView - PullRequest
1 голос
/ 23 июня 2010

У меня есть программа на C #, над которой я работаю, но я не могу отобразить ComboBoxColumn так, как я этого хочу.

У меня есть две таблицы.Один содержит список цен.(Столбцы: PriceID, PartID, Цена, MinimumQuantity, CustomerID, ExpiryDate) Другая таблица содержит список частей (Столбцы: PartID, PartNumber).Что

я хочу сделать, это отобразить PartNumber в ComboBoxColumn с PartID в качестве значения.Но я хочу, чтобы соответствующий номер детали выбирался автоматически для каждой строки цены.

Имеет ли это смысл!?

В настоящее время я получаю в каждой строке цены, количества и даты истечения срока действия, а также ComboBoxColumnсо списком деталей, заполняющим поле со списком, но значение не выбрано.

Пожалуйста, кто-нибудь может мне помочь с этим.

Пожалуйста, смотрите код ниже.

        DbConnection dbConn = new DbConnection(getConnectionStr());
        dbConn.execQuery("EXEC RBS_CustomerSpecificPriceListSelect " + customerID + ";", "CustomerPriceList");
        dbConn.execQuery("EXEC RBS_PartsSelect;", "Parts");

        DataTable dtCustomerPrices = dbConn.getDataTable("CustomerPriceList");
        DataTable dtParts = dbConn.getDataTable("Parts");

        dgvCustomerPrices.AutoGenerateColumns = false;
        dgvCustomerPrices.DataSource = dtCustomerPrices;
        dgvCustomerPrices.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

        SetupDGVColumns(dtCustomerPrices, dtParts);

Затем для генерацииколонны.

    private void SetupDGVColumns(DataTable dtCustomerPrices, DataTable dtParts)
    {
        // Parts Dropdown
        DataGridViewComboBoxColumn cboPartsColumn = new DataGridViewComboBoxColumn();
        cboPartsColumn.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
        cboPartsColumn.DataSource = dtParts;
        cboPartsColumn.HeaderText = "PartNumber";
        cboPartsColumn.DisplayMember = "PartNumber";
        cboPartsColumn.ValueMember = "PartID";
        cboPartsColumn.DataPropertyName = "PartID";
        cboPartsColumn.Width = 110;
        cboPartsColumn.AutoComplete = true;
        dgvCustomerPrices.Columns.Add(cboPartsColumn);

        // MinimumQuantity Textbox
        DataGridViewTextBoxColumn tbcMinimumQuantityColumn = new DataGridViewTextBoxColumn();
        tbcMinimumQuantityColumn.DataPropertyName = "MinimumQuantity";
        tbcMinimumQuantityColumn.HeaderText = "MinimumQuantity";
        tbcMinimumQuantityColumn.ValueType = typeof(double);
        tbcMinimumQuantityColumn.Width = 140;
        tbcMinimumQuantityColumn.DefaultCellStyle.Format = "#####0.00";
        dgvCustomerPrices.Columns.Add(tbcMinimumQuantityColumn);

        // Price Textbox
        DataGridViewTextBoxColumn tbcPriceColumn = new DataGridViewTextBoxColumn();
        tbcPriceColumn.DataPropertyName = "Price";
        tbcPriceColumn.HeaderText = "Price";
        tbcPriceColumn.ValueType = typeof(double);
        tbcPriceColumn.Width = 100;
        tbcPriceColumn.DefaultCellStyle.Format = "#####0.00";
        dgvCustomerPrices.Columns.Add(tbcPriceColumn);

        // ExpiryDate Textbox
        DataGridViewTextBoxColumn tbcExpiryDateColumn = new DataGridViewTextBoxColumn();
        tbcExpiryDateColumn.DataPropertyName = "ExpiryDate";
        tbcExpiryDateColumn.HeaderText = "ExpiryDate";
        tbcExpiryDateColumn.ValueType = typeof(string);
        tbcExpiryDateColumn.DefaultCellStyle.Format = "d";
        dgvCustomerPrices.Columns.Add(tbcExpiryDateColumn);
    }

1 Ответ

0 голосов
/ 06 июля 2010

Хорошо, так что это был полный идиотизм с моей стороны.У запроса SQL, который выбирал данные столбцов комбо, не было соответствующего идентификатора строки в предложении SELECT.

Спасибо всем за помощь!Я чувствую себя глупо!

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