Получить значение из выпадающего списка - PullRequest
1 голос
/ 21 марта 2012

У меня есть 2 таблицы в базе данных carrier и vendor. 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 ]

2 голосов
/ 21 марта 2012

Чтобы получить значение этого комбинированного списка (т.е. выбранного носителя), все, что вам нужно, это просто использовать два свойства SelectedValue, чтобы получить CarrierId или SelectedText, чтобы получить значение (т.е. CarrierName). Например, вы можете получить идентификатор выбранного перевозчика, используя:

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

Или, если вам нужен CarrierName, вы должны использовать:

string CarrierName = comVendorCarrier.SelectedText;

Редактировать: Предполагая, что ваши таблицы имеют следующую структуру:

Перевозчик:

  • CarrierId.
  • CarrierName.

Производитель:

  • VendorId.
  • CarrierId: внешний ключ ссылается на Carriers (CarrierId).
  • VendorName.

Эти две таблицы должны быть сопоставлены в вашем файле .dbml с двумя сущностями Vendor и Carrier, в которых класс Vendor имеет свойство типа Carrier, представляющее внешний ключ CarrierID.

Затем, чтобы просмотреть CarrierName в списке поставщиков, вы можете сделать это:

var vendorsList = _db.Vendors 
                     .Select( vendor => new
                     {
                         VendorId = vendor.Id,
                         VendorName = vendor.Name,
                         CarrierName = vendor.Carrier.Name
                     });
0 голосов
/ 27 марта 2012
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();

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...