Привязка ComboBox к БД SQL
У меня есть база данных SQL, где две таблицы имеют отношение ПК. tblProject.contractorID - столбец внешнего ключа, а tblCompany.contractorID - столбец первичного ключа.
Я создал форму Windows, помеченную tblProject.contractorID как ComboBox, пометил tblProject как "Детали" и перетащил tblProject в форму. Теперь у меня есть метки, текстовое поле и комбинированный список tblProject и связанный навигатор привязки. (ihaleDataSet, tblProjectBindingSource, tblProjectTableAdapter, tableAdapterManager и tblProjectBindingNavigator)
Когда я запускаю проект и нажимаю 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 ответ
Я решил проблему. Достаточно просто заменить "Текст" на "Выбранное значение" в первом ряду.
Более подробная информация здесь.