【问题标题】:Get value from combobox从组合框获取价值
【发布时间】:2012-03-21 14:48:27
【问题描述】:

我在数据库 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";

【问题讨论】:

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


    【解决方案1】:

    要获取此组合框的值(即所选运营商),您只需使用两个属性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
                         });
    

    【讨论】:

    • 我得到这个错误;对象引用未设置为对象的实例。
    • @ThivakaranSelvarajoo,您的数据是否正确填充在组合框上??
    • @ThivakaranSelvarajoo,给出此错误的对象是comVendorCarrier
    • @ThivakaranSelvarajoo,不客气,欢迎来到 Stack Overflow。
    • 但现在我又遇到了一个问题。如果我想查看供应商列表,显示运营商 ID 的运营商名称。我必须这样做,以便当我单击查看供应商时,运营商名称必须显示运营商名称而不是运营商 ID ..提前致谢
    【解决方案2】:
    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();
    
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-26
      • 1970-01-01
      相关资源
      最近更新 更多