从组合框中获取价值

时间:2012-03-21 14:48:27

标签: c# sql wpf linq-to-sql c#-4.0

我在数据库carriervendor中有2个表。 vendor的外键为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 个答案:

答案 0 :(得分:2)

要获取此组合框的值(即所选载体),您只需使用两个属性SelectedValue即可获取CarrierIdSelectedText以获取值(即CarrierName)。 例如,您可以使用以下方式获取所选运营商的ID:

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

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

string CarrierName = comVendorCarrier.SelectedText;

编辑:假设您的表格具有以下结构:

<强>载体:

  • CarrierId
  • CarrierName

<强>供应商:

  • VendorId
  • CarrierId:外键引用Carriers(CarrierId)。
  • VendorName

这两个表应该在 .dbml 文件中映射到两个实体VendorCarrier,其中Vendor类具有类型属性Carrier代表外键CarrierID

然后,为了查看供应商列表中的CarrierName,您可以执行以下操作:

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

答案 1 :(得分: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();

            }