2012-03-21 5 views
1

У меня есть 2 таблицы в базе данных carrier и vendor. vendor имеет внешний ключ Carrier_Id. Когда пользователь хочет добавить поставщика, пользователь выберет перевозчика из выпадающего списка, где клапан из таблицы носителей.Получить значение от combobox

Проблема, с которой я сталкиваюсь сейчас, заключается в том, что я не знаю, как получить клапан из combobox, чтобы я мог вставить его в базу данных.

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

MyinvoiceDataDataContext contect = new MyinvoiceDataDataContext(); 
var st = from s in contect.Carriers 
select new { s.CarrierID, s.CarrierName}; 
comVendorCarrier.ItemsSource = st; 
comVendorCarrier.DisplayMemberPath = "CarrierName"; 
comVendorCarrier.SelectedValuePath = "CarrierID"; 

ответ

2

Чтобы получить значение этого выпадающего списка (т.е. выбранный носитель), все, что вам нужно просто использовать два свойства SelectedValue получить CarrierId или SelectedText, чтобы получить значение (т.е. CarrierName). Например, вы могли бы получить идентификатор выбранного носителя с помощью:

int SelectedCarrierId = int.parse(comVendorCarrier.SelectedValue.ToString()); 

Или, если вам нужен CarrierName вы должны использовать:

string CarrierName = comVendorCarrier.SelectedText; 

Edit: Предполагая, что ваши таблицы имеют следующий structre:

Carrier:

  • CarrierId.
  • CarrierName.

Производитель:

  • VendorId.
  • CarrierId: ссылки на внешние ключи Перевозчики (CarrierId).
  • VendorName.

Эти две таблицы должны быть отображены в вашем DBML- файл с двумя объектами Vendor и Carrier, в котором Vendor класс имеет свойство типа Carrier, который представляет внешний ключ CarrierID.

Тогда для того, чтобы просмотреть CarrierName в списке продавцов, вы можете сделать это:

var vendorsList = _db.Vendors 
        .Select(vendor => new 
        { 
         VendorId = vendor.Id, 
         VendorName = vendor.Name, 
         CarrierName = vendor.Carrier.Name 
        }); 
+0

Я gettng эту ошибку; В экземпляре объекта не задана ссылка на объект. –

+0

@ThivakaranSelvarajoo, ваши данные заселены правильно на combobox ?? –

+0

yes .. Элементы combobox могут быть просмотрены ... –

0
using (MyinvoiceDataDataContext connv = new MyinvoiceDataDataContext()) 
      { 

       Vendor editven = (from s in connv.Vendors 
           where s.VendorID == vendor.VendorID 
           select s).FirstOrDefault(); 

       editven.VendorAddress = editven.VendorAddress; 
       editven.VendorBalance = editven.VendorBalance; 
       editven.VendorContactName = editven.VendorContactName; 
       editven.VendorEmail = editven.VendorEmail; 
       editven.VendorFax = editven.VendorFax; 
       editven.VendorName = editven.VendorName; 
       editven.VendorPaymentTerms = editven.VendorPaymentTerms; 
       editven.VendorPhone = editven.VendorPhone; 
       editven.VendorRemark = editven.VendorRemark; 
       editven.VendorTax = editven.VendorTax; 
       editven.VendorWebsite = editven.VendorWebsite; 
       editven.CarrierID = editven.CarrierID; 
       connv.SubmitChanges(); 

      } 
Смежные вопросы