2012-03-21 311 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(); 

      }