2013-04-23 1 views
0

Je suis en train d'écrire une application pour les candidats des universités en utilisant C#. Sur la première forme j'ai plusieurs textboxes, radiobutton et une zone de liste déroulante. Tout cela est lié à une base de données (étudiant) que je crée. Il y a un table tbl_nationality et un tableau tblstudent dans la base de données. Dans le tableau tbl_nationality nous avons la colonne Nationality_id et Country. Le nationality_id est une clé étrangère dans le tableau tblstudent.liaison combobox avec des données et enregistrer en tant que clé étrangère C#

J'ai écrit quelques lignes de code pour remplir les données du pays de colonne dans la zone de liste déroulante (cmbnationality). Le problème est, maintenant j'ai besoin de sauvegarder les données des formulaires et la zone de liste déroulante nationalité est une clé étrangère dans la table tblstudent. Comment faire pour enregistrer la clé étrangère nationality_id dans tblstudent lorsque j'affiche le pays de tbl_nationality.

void FillNationality() 
{ 
    SqlConnection connection = new SqlConnection(); 
    connection.ConnectionString = "Integrated Security=true; Initial Catalog = student; Data Source = Yudish-PC"; 
    string Query = "select * from tbl_nationality ;"; 
    SqlCommand cmdDatabase = new SqlCommand(Query, connection); 
    SqlDataReader myReader; 
    try 
    { 
     connection.Open(); 
     myReader = cmdDatabase.ExecuteReader(); 
     while (myReader.Read()) 
     { 
      string nationality = myReader.GetString (1); 
      cmbnationality.Items.Add(nationality); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message);    
    } 
    finally 
    { 
     connection.Close(); 
    } 
} 

Répondre

0

Lorsque vous remplissez la zone de liste déroulante, utilisez l'ID comme valeur et le pays comme texte d'affichage. Lorsque vous mettez à jour la base de données, récupérez la propriété SelectedValue de la liste déroulante, qui sera l'ID. Si l'Id n'est pas quelque chose que vous voulez exposer, vous pouvez conserver les données dans l'objet Session et utiliser le Pays comme une recherche sur cette table (juste en boucle). Devrait être assez simple.

Réglage de la table session:

Session["myTable"] = ds.tables["myTable"];

Obtenir la valeur de la zone de liste déroulante:

myCombo.SelectedValue

Vous devriez également se pencher sur la liaison d'une source de données (table de l'ensemble de données extraites du db) à votre combobox.

Questions connexes