mywman
Messages postés38Date d'inscriptionmercredi 20 janvier 2010StatutMembreDernière intervention19 mars 2015
-
3 mars 2014 à 08:12
mywman
Messages postés38Date d'inscriptionmercredi 20 janvier 2010StatutMembreDernière intervention19 mars 2015
-
10 mars 2014 à 13:35
Bonjour,
je suis entrain de dévélopper une application de gestion d'affectation en c#. Dans l'application on doit pouvoir affecter un agent dans un pays, sachant qu'un pays est constitué de villes, et que une ville est constitué d'arrondissement, je voudrais que lorsqu'on selectionne un pays du combobox pays, le combobox ville se rempli des villes de se pays. et lorsqu'on sélection un élément du combobox ville le combobox arrondissement se rempli des arrondissement concernant cette ville. Voici un code que j'ai fais mais sa coince, j'ai une exception.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Data.Common; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;
namespace dataset { public partial class Form1 : Form {
DataSet dsMain1 = new DataSet(); DataSet dsMain2 = new DataSet();
string mychaine = ""; string myprovider = "";
public Form1(string mychaine, string myprovider) { InitializeComponent();
dsMain.Relations.Add(new DataRelation("Membership", dsMain.Tables["PAYS"].Columns["ID_PAYS"], dsMain.Tables["PROVINCE"].Columns["ID_PAYS"])); /* // Create dummy rows for any parent that has no children foreach (DataRow Row in dt1.Rows) { if (Row.GetChildRows("Membership").Length == 0) { DataRow s = dt2.NewRow(); s["ID_PROV"] = ""; s["LIB_PROV"] = ""; s["ID_PAYS"] = Row["ID_PAYS"]; dt2.Rows.Add(s); } } */ // dsMain.AcceptChanges();
cboNations.DataSource = dsMain.Tables["PAYS"]; cboNations.ValueMember = "PAYS.ID_PAYS"; // L'exception c'est a ce niveau "Impossible de créer une liste enfant pour le champ PAYS."/B cboNations.DisplayMember = "PAYS.LIB_PAYS"; // L'exception c'est a ce niveau "Impossible de créer une liste enfant pour le champ PAYS."/B
DevLama
Messages postés356Date d'inscriptionmercredi 13 avril 2011StatutMembreDernière intervention18 novembre 202110 3 mars 2014 à 13:35
Salut,ton code fonctionne différemment de ce que tu dis,
Normalement tu ne devrais pas charger tous les combos lors du chargement de la page.
Exemple:
Le combo Pays doit être charger 1erement puis lorsque tu fais selectTextChanged,tu vérifies si le combox n'est pas vide après avoir changer le contenu,alors le combo Ville devient actif(Enabled=true) et dans la code de l'événement DropDown tu vas faire une recherche sur les villes par rapport au pays sélectionner.
et tu en fais autant pour la suite.
/*********************FIN EXEMPLE*****************
bon à part ça,pourquoi tu charges les données lors du chargement de ton formulaire sans utiliser l'Asynchrone? si tu as des données assez sérieuses(beaucoup) tu auras un problème lors de l'exécution de ton application.
mywman
Messages postés38Date d'inscriptionmercredi 20 janvier 2010StatutMembreDernière intervention19 mars 2015 10 mars 2014 à 13:35
Bjr les gars,
j'ai fait comme vous m'avez indiqué.j'ai réussi à partir du combobox cBx_PAYS_AFFECTATION à charger le combox cBx_PROVINCE_AFFECTATION. Mais le problème c'est que lorsque je veux sélectionne un élément de cBx_PROVINCE_AFFECTATION pour charger le combox cBx_VILLE_AFFECTATION le selectedValue ne reçoit pas de valeur.
Je vous montre mon code, je développe en 3tiers:
UserInterface:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient;
namespace DMS { public partial class FmAffectation : Form {
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Common; using System.Data; using System.Windows.Forms; using System.Data.SqlClient;
public int chargerProvince(String comboProv, ComboBox cBx_PROVINCE_AFFECTATION) { try { string sConnectionString; sConnectionString = "Data Source=ST02;Initial Catalog=BD_DMS;User ID=sa;Password=dms";
SqlConnection objConn = new SqlConnection(sConnectionString); objConn.Open();
DataSet dsMain = new DataSet("DMS"); SqlDataAdapter daPROVINCE = new SqlDataAdapter("Select LIB_PROV From PROVINCE WHERE ID_PAYS = '"+ comboProv +"'", objConn); daPROVINCE.FillSchema(dsMain, SchemaType.Source, "PROVINCE"); daPROVINCE.Fill(dsMain, "PROVINCE");
M@lick
Messages postés1Date d'inscriptionlundi 3 mars 2014StatutMembreDernière intervention 3 mars 2014 3 mars 2014 à 10:23
Tu doit créer une requête préparer au comboboxPays SelectedIndexChange du genre select Nomville from Ville where nomPays ="'" & comboboxPays.selectedItem & "'"
Je ne sais pas si je me suis bien fait comprendre
10 mars 2014 à 13:35
j'ai fait comme vous m'avez indiqué.j'ai réussi à partir du combobox cBx_PAYS_AFFECTATION à charger le combox cBx_PROVINCE_AFFECTATION. Mais le problème c'est que lorsque je veux sélectionne un élément de cBx_PROVINCE_AFFECTATION pour charger le combox cBx_VILLE_AFFECTATION le selectedValue ne reçoit pas de valeur.
Je vous montre mon code, je développe en 3tiers:
UserInterface:
Couche d'accès au données:
Couche Métier:
Merci les gars pour votre aide