2012-03-21 46 views
1

データベース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

このコンボボックス(すなわち、選択されたキャリア)の値を取得するために必要なのは、ちょうどCarrierIdSelectedText値(すなわちCarrierName)を取得するために取得するために、2つのプロパティSelectedValueを使用しています。

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

それともCarrierNameが必要な場合に使用すべきであるが: たとえば、あなたが使用することによって選択されたキャリアのIDを取得することができ

string CarrierName = comVendorCarrier.SelectedText; 

編集:は、あなたのテーブルが持っていると仮定すると、次structre:

キャリア:

  • CarrierId
  • CarrierName

ベンダー:

  • VendorId
  • CarrierId:外部キーは、キャリア(CarrierId)を参照します。
  • VendorName

これらの2つの表は、Vendorクラスが外部キーCarrierIDを表しタイプCarrierの性質を有するもので、2つのエンティティVendorCarrierにご.dbmlファイルにマッピングする必要があります。

そして、ベンダーのリストにCarrierNameを表示するためには、あなたがこれを行うことができます:

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

私はこのエラーをgettng。オブジェクト参照がオブジェクト インスタンスに設定されていません。 –

+0

@ThivakaranSelvarajoo、あなたのデータはコンボボックスに正しく入力されていますか? –

+0

はい..コンボボックスの項目が表示される可能性があります。 –

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

      } 
関連する問題