Привязка ComboBox к БД SQL

У меня есть база данных SQL, где две таблицы имеют отношение ПК. tblProject.contractorID - столбец внешнего ключа, а tblCompany.contractorID - столбец первичного ключа.

SQL

Я создал форму Windows, помеченную tblProject.contractorID как ComboBox, пометил tblProject как "Детали" и перетащил tblProject в форму. Теперь у меня есть метки, текстовое поле и комбинированный список tblProject и связанный навигатор привязки. (ihaleDataSet, tblProjectBindingSource, tblProjectTableAdapter, tableAdapterManager и tblProjectBindingNavigator)

2Когда я запускаю проект и нажимаю ComboBox ContractorID, я хочу отобразить значения tblCompany.shortName. После выбора одного из этих значений я хочу записать значение tblCompany.contractorID в tblProject.ContractorID и записать соответственно.

Я пытался режим привязки данных (DataSource= tblCompanyBindingSource, DisplayMember = "shortName", ValueMember = "companyID")

        // 
        // contractorIDComboBox
        // 
        this.contractorIDComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.tblProjectBindingSource, "contractorID", true));
        this.contractorIDComboBox.DataSource = this.tblCompanyBindingSource;
        this.contractorIDComboBox.DisplayMember = "shortName";
        this.contractorIDComboBox.FormattingEnabled = true;
        this.contractorIDComboBox.Location = new System.Drawing.Point(181, 100);
        this.contractorIDComboBox.Name = "contractorIDComboBox";
        this.contractorIDComboBox.Size = new System.Drawing.Size(121, 21);
        this.contractorIDComboBox.TabIndex = 8;
        this.contractorIDComboBox.ValueMember = "companyID";

Это не работает. Что мне делать, чтобы достичь своей цели?

1 ответ

Решение

Я решил проблему. Достаточно просто заменить "Текст" на "Выбранное значение" в первом ряду.

Более подробная информация здесь.

Другие вопросы по тегам