2012-03-21 117 views
1

我在数据库中有两个表格carriervendorvendor有一个外键Carrier_Id。当用户想要添加供应商时,用户将从载体表中选择阀门的组合框中的载体。从组合框中获得价值

我现在面临的问题是,我不知道如何从组合框中获取阀门,以便将其插入到数据库中。

我使用此代码从载体表中获取阀以显示在组合框中。

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得到CarrierIdSelectedText得到的值(即CarrierName)。 例如,您可以通过使用获得选定运营商的ID:

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

或者,如果你需要的CarrierName你应该使用:

string CarrierName = comVendorCarrier.SelectedText; 

编辑:假设你的表有以下结构法:

载体:

  • CarrierId
  • CarrierName

卖方:

  • VendorId
  • CarrierId:一个外键引用Carrier(CarrierId)。
  • VendorName

这两个表应该在你的.dbml 文件被映射到两个实体VendorCarrier,其中Vendor类有代表外键CarrierIDCarrier类型的属性。

然后才能在供应商列表中查看CarrierName,你可以这样做:

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

我gettng这个错误;你调用的对象是空的。 – 2012-03-21 16:06:07

+0

@ThivakaranSelvarajoo,您的数据是否正确填充在组合框中? – 2012-03-21 16:12:46

+0

是的..组合框项目可以查看... – 2012-03-21 16:15:33

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(); 

      }