IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Charger un DataGrid grâce à une comboBox


Sujet :

C#

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Charger un DataGrid grâce à une comboBox
    Bonjour,

    Je souhaiterais au final réaliser un tableau (=dataGrid) qui comporterais comme colonne :
    * CodeArticle
    * DésignationArticle
    * PU_HT
    * PU_TTC
    * CodeBarre de CodeArt

    Pour remplir ce dataGrid, j'aimerais me servir d'une comboBox comportant les DésignationArticle.
    Ensuite, lorsque je choisi une DésignationArticle (dans ma combo) alors ça rentre les informations correspondant à ce dernier dans le DataGrid plus précisément son CodeArticle, son PU_HT, son P_TTC et le CodeBarre de CodeArt.
    Est-ce que cela est-il possible??

    Si oui, comment je dois procéder? Car je cherche mais je ne trouve pas grand chose.

    P.S. : je travail avec Visual Studio.Net2003

    Merci d'avance!!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Oui c'est possible :
    Récemment dans un des posts il y a eu ce lien de donné :
    http://www.akadia.com/services/dotne..._datagrid.html
    Mais une question ? Tu ne peux pas utiliser un DataGridView ? Ce serait plus simple car il fournit plusieurs types de colonnes comme le type DataGridViewComboBoxColumn qui n'est pas présent avec le DataGrid...

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Merci pour le lien mais si je m'abuse il répond pas trop a ma question car moi je ne veux pas que la combo soit dans le datagrid mais qu'elle (la combo) permette de remplir le dataGrid.

    Donc ce qui donnerais un truc du genre :

    COMBO_DESIGN INTER

    DATAGRID construit grâce à la combo.

    P.S. : Ce sont donc 2 contrôle différent et non un dans l'autre.

    Mais une question ? Tu ne peux pas utiliser un DataGridView ? Ce serait plus simple car il fournit plusieurs types de colonnes comme le type DataGridViewComboBoxColumn qui n'est pas présent avec le DataGrid...
    Donc pour te répondre : Je sais pas comment faire puis je sais pas si c'est possible avec Visual Studio.Net 2003.

    merci d'avance!!
    Cordialement.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Autant pour moi...

    En gros tu veux faire un filtre sur un type de 'DésignationArticle'.
    Je ne suis pas adepte du DataGrid mais il doit se remplir avec un datasource je suppose... Ce datasource doit donc être filtré/réinitialisé.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Ok pas grave t'inquiète pas.

    Ok pour le filtre.... J'espère trouvé.

    Si quelqu'un peux m'aider ce serait génial!! Donc n'hésité pas a me donner des tutos avec exemples de cela ou vos explications avec exemples s'il vous plais.

    Merci d'avance!!

  6. #6
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    J'ai bien compris ton problème mais c'est pas trop bien (à mon avis) de remplir une Datagrid pour ne afficher qu'une seule ligne!
    Autant faire une liste globale de tous les enregistrements.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à fally
    Je pense faire comme ça ar l'utilisateur ne sélectionnera ps forcément tout les articles car il sélectionnera que les articles dont il a utilié pour son intervention.

    Donc je pense qu'avec ce que je vient de dire, (enfin si j'ai biecompris ce que tu disait) ben ce que tu me propose n'est pas trop bien non lus.

    Mais je peux me tromper.

    Si vous avez des idées ou que vous pouvez-m'aider n'ésiter pas!!

    Merci d'avance!!

  8. #8
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    J'ai bien compris ton problème! mais j'avoue que moi je ferais pas comme celà
    Quant à ton problème, si ta combo a un Value Member tu fabriques une requête qui affcihe les info dont t'as besoin dans la DataGrid avec un where CodeArticle = ta SelectedValue

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à fally
    Ok.

    Merci pour ton aide, je vais voir ce que je peux faire.

    Par contre tu aurais fais comment toi v avec mon problème??


    merci d'avance!!

  10. #10
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Puisque tu ne veux pas afficher toute la liste, utilise des TextBox pour afficher les résultats enfin c'est juste un proposition quoi!!

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à fally
    Elle est bien ta proposition mais s'il y en a 10 de choisit, ça va faire beaucoup de textBox.

    merci d'avance!!

  12. #12
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Je crois que Fally avait compris que ta requête sur le critère 'DésignationArticle ' allait t'afficher uniquement un enregistrement (une ligne) :
    J'ai bien compris ton problème mais c'est pas trop bien (à mon avis) de remplir une Datagrid pour ne afficher qu'une seule ligne!
    Et comme tu ne l'a pas contredit en même temps...
    Mais si la requête affiche plus d'une ligne, le DataGrid me semble adéquat.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Je me rexplique :

    ma combo contient une liste de 'désignationArticle' prit de la base Sql server 2000.

    Ensuite j'aimerais que quand l'utilisateur sélectionne une 'désignationArticle' (dans la combo) ben ça l'affiche dans le dataGrid ainsi le 'codeArticle', le 'PU_HT' et 'PU_TTC' et le 'codeArticleSousFormedeCodeBar' correspondant à la 'DésignationArticle' choissit.

    Sachant que l'utilisateur pourrais bien faire la manipulation plusieurs fois s'il a besoin de plusieurs 'DésignationArticles'.

    Merci d'avance!!

  14. #14
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    ah ok ba vu comme ca le datagrid me semble aussi adapté

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo
    Ok.

    Bon c'est sur il se peux qu'il y es qu'une ou 2 lignes tout dépend des besoins de l'utilisateur.

    merci d'avance!!
    Cordialement.

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut relance du sujet
    Bonjour tout le monde,

    Je rexplique ce que je compte faire : J'ai une combo (DesArt qui me permet de sélectionner la désignation de l'article souhaite) avec leqel je hoisit une désigantionArticle pour ensuite, que dans mon dataGrid la désignation ainsi le code et le PU_HT et le PU_TTC de l'article choisi s'affiche.

    Voici le cod que j'ai réalisé pour remplir ma combo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // Code permettant d'afficher la liste des désignations des articles.
    			connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			command = new SqlCommand("SELECT PD_DESIGNART FROM PIECE_DETACHEE", connection);
    			connection.Open();
    			try
    			{
    				rader = command.ExecuteReader();
    				try
    				{
    					while (rader.Read()) 
    						DesArt.Items.Add(Convert.ToString(rader["PD_DESIGNART"]));
    				}
    				finally
    				{
    					rader.Close();
    				}
    			}
    			finally
    			{
    				connection.Close();
    			}
    (cela fonctionne parfaitement)

    Ensuite, voici le code pour remplir mon dataid selon le choix du DesArt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			string PieceDetachee = ("SELECT PD_CODART as codeArt, PD_DESIGNART as designArt, PD_PU_HT as HT, PD_PU_TTC as TTC FROM PIECE_DETACHEE WHERE PD_DESIGNART = '" + DesArt.SelectedValue + "'");
    			connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter2 = new SqlDataAdapter(PieceDetachee, connection);
    				DataSet ds2 = new DataSet();
    				dataAdapter2.Fill(ds2,"PieceDetachee");
    				dataGrid3.DataSource = ds2;
    				dataGrid3.DataMember = "PieceDetachee";
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}  
    		}
    Ce code m'affiche bien les colonnes souhaitées mais vide.

    Lorsque je debug le code, donc que j'ajoute un espion au niveau de ma requête il me dit :
    "SELECT PD_CODART as codeArt, PD_DESIGNART as designArt, PD_PU_HT as HT, PD_PU_TTC as TTC FROM PIECE_DETACHEE WHERE PD_DESIGNART = '" + DesArt.SelectedValue + "'" erreur*: + ne peut pas être appliqué à '"SELECT PD_CODART as codeArt, PD_DESIGNART as designArt, PD_PU_HT as HT, PD_PU_TTC as TTC FROM PIECE_DETACHEE WHERE PD_DESIGNART = '"' et 'DesArt.SelectedValue'
    Comment ça se fait??

    Merci d'avance pour votre aide.

  17. #17
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DesArt.SelectedValue.ToString();

  18. #18
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Ce sera plus propre mais je pense que ça doit déjà fonctionner (le cast doit être fait implicitement et doit retourner la valeur). Après l'espion a parfois des raté

    Sinon pour ton problème, as-tu essayer ta requête sous SqlServer ? (juste pour vérifier qu'elle retourne bien des données).

    Une remarque (ou question , moi et sql ca fait...) :
    Les apostrophes autour du champ ne sont-ils pas la cause d'une requête erronée ?

  19. #19
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à binoo et à fally
    Réponse à fally : Lorsque je mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DesArt.SelectedValue.ToString();
    et que je réalisé l'espion sur la requête, il me disait que .Selected.ToStrng() n'existait pas....

    Réponse à binoo : Tout d'abord j'ai testé la requête sous SqlServer2000 et ça fonctionné. Puis j'ai voulu ssayer par hasard le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private void DesArt_SelectedIndexChanged(object sender, System.EventArgs e)
    		{
    			string PieceDetachee = ("SELECT PD_CODART as codeArt, PD_DESIGNART as designArt, PD_PU_HT as HT, PD_PU_TTC as TTC FROM PIECE_DETACHEE WHERE PD_DESIGNART = '" + DesArt.SelectedItem + "'");
    			connection = new SqlConnection("Data Source=SNCK96400031;Initial Catalog=DistribInfo;Integrated Security=SSPI");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter2 = new SqlDataAdapter(PieceDetachee, connection);
    				DataSet ds2 = new DataSet();
    				dataAdapter2.Fill(ds2,"PieceDetachee");
    				dataGrid3.DataSource = ds2;
    				dataGrid3.DataMember = "PieceDetachee";
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}  
    		}
    c'est à dire qu'au lieu de j'ai mit Ben cela fonctionne parfaitement.

    Maintenant j'aimeras rajouter une colonne qui correspond au Cde barre du codArt, cela est-il possible?? si oui,comment feriez-vous??

    merci d'avance pour votre aide.

  20. #20
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Tu veux faire une colonnes d'images en gros et je ne sais pas si c'est réalisable avec le DataGrid... (DataGridView sans problème, mais DataGrid...)

    Une possibilité serait d'afficher l'image (code barre) à coté du DataGrid lorsqu'une ligne est sélectionnée (mais ça ne répond pas à ton problème).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Datagrid dans une combobox
    Par draco951 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 17/06/2013, 08h02
  2. [Débutant] Charger des données dans une Combobox
    Par Badreddines dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/05/2013, 16h42
  3. [AC-2007] Afficher une table dans un SF grâce à une combobox
    Par facedeharicot dans le forum IHM
    Réponses: 3
    Dernier message: 05/09/2011, 10h29
  4. [Binding] DataGrid incluant une combobox
    Par Harry_polin dans le forum Windows Forms
    Réponses: 9
    Dernier message: 11/12/2008, 16h05
  5. [Delphi for PHP] Récupérer les données d'un Datagrid pour une combobox ou listbox
    Par Truebison dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/08/2007, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo