2010-11-03 8 views
1

Je suis novice à C#. J'ai une question sur la liaison combobox avec une clé étrangère dans l'objet entité edmx. J'ai un objet entité edmx "Customer Card" qui a des champs et l'un des champs est une clé étrangère (CityID) de ce client qui contient un ID à la liste de la table Cities ou de l'objet entité "City".Zone de liste déroulante dans l'entité edmx

Je veux gérer le client combobox dans mon code. Je remplis la combobox. Récupérer également l'élément sélectionné en cours lorsque l'utilisateur enregistre l'enregistrement. Toutefois; Je ne sais pas comment affecter l'élément sélectionné dans l'élément de liste déroulante à l'objet entité Client. Tout ce que je vois dans l'objet entité est la propriété City et CityReference. Ma question est comment est-ce que j'attribue l'article sélectionné de l'ID de ville actuel à la "carte de client" dans l'objet d'entité? S'il vous plaît inclure le code.

Voici mon code

private class CustCard 
    { 
     public int ID { get; set; } 
     public string CompanyName { get; set; } 
     public string ContactName { get; set; } 
     public string City { get; set; } 
    } 

    public class CityCard 
    { 
     public int ID {get; set;} 
     public string Name {get; set;} 
     public string Country {get; set;} 
    } 

    var custCards = from p in entities.CustomerCards 
         select new CustCard 
         { 
          ID = p.ID, 
          CompanyName = p.CompanyName, 
          ContactName = p.ContactName, 
          City = p.City.Name, 
          CityID = p.City.ID, 
         }; 

    var cityList = from p in entities.Cities 
         select new CityCard 
         { 
          ID = p.ID, 
          Name = p.Name, 
          Country = p.Country.Name, 
         }; 

    //Bind City List 
    CityComboBox.DataSource = CityList; //cities in the entity object 
    CityComboBox.ValueMember = "ID"; 
    CityComboBox.DisplayMember = "Name"; 

    private void Save_Click(object sender, EventArgs e) 
    { 
      CustomerCard Cust = new CustomerCard(); 

      Cust.Address = addressTextBox.Text; 
      Cust.CompanyName = companyNameTextBox.Text; 


      **// HOW CAN I assign Selected item to the City field in the CustCard 
      ????????????cityIDComboBox.SelectedItem;?????????????** 

      entities.AddToCustomerCards(Cust); 
      entities.SaveChanges(); 
    } 

Répondre

0

... Que diriez-vous

Cust.City = CityComboBox.SelectedItem.Name; 
0
private void Save_Click(object sender, EventArgs e) 
    { 
      CustomerCard Cust = new CustomerCard(); 

      Cust.Address = addressTextBox.Text; 
      Cust.CompanyName = companyNameTextBox.Text; 


      Cust.City = CityComboBox.SelectedItem.Name; 
      Cust.CityID = CityComboBox.SelectedItem.Value; 

      entities.AddToCustomerCards(Cust); 
      entities.SaveChanges(); 
    } 
+0

Voulez-vous dire p.City.ID = ((CityCard) cityIDComboBox.SelectedItem) .ID; –

+0

Lorsque je fais cela, j'obtiens une exception: Une exception non gérée de type 'System.NullReferenceException' s'est produite dans Accounting2.exe Informations supplémentaires: La référence d'objet n'est pas définie sur une instance d'un objet. –

+0

Avez-vous sélectionné quelque chose en premier? Si nothign est sélectionné, CityComboBox.SelectedItem sera null. Assurez-vous également que les entités ont été initialisées. – matheeeny

Questions connexes