none
Datagridview et textbox_TextChanged

    Discussion générale

  • Bonjour,

    C'est ma première fois de postuler ici.

    Je suis un développeur junior .NET, actuellement je développement une application et la je suis bloqué pour un petit truc :)

    En faite, j'ai un datagridview dont je fais la recherche avec un textbox. Ca marche très bien mais j'ai une colonne qui n'est pas affiché. Genre, j'ai le nom de produit qui affiche mais le code de produit n'affiche pas.

    quelqu'un peut m'aider svp?

    samedi 6 mai 2017 23:08

Toutes les réponses

  • Bonjour,

    Avez-vous mis la propriété AutoGenerateColumns à true dans votre DatagridView?

    Si c'est le cas, je vous propose de créer dynamiquement les colonnes de votre Datagridview, en mettant cette fois-ci la propriété AutoGenerateColumns à false et d'utiliser un code similaire à celui ci pour la création dynamique des colonnes : 

    // Prepare the DataViewGrid
            dataGridView1.Columns.Clear();
    
            // Add each column to the grid according to the data table structure
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                DataGridViewColumn dataGridViewColumn = new DataGridViewColumn();
                DataGridViewCell dataGridViewCell = new DataGridViewTextBoxCell();
                dataGridViewColumn.DataPropertyName = dataTable.Columns[i].ColumnName;
                dataGridViewColumn.HeaderText = dataTable.Columns[i].ColumnName;
                dataGridViewColumn.CellTemplate = dataGridViewCell;
                dataGridViewColumn.Name = dataTable.Columns[i].ColumnName;
                dataGridView1.Columns.Add(dataGridViewColumn);
            }
    
            // Set the DataSource for the binding
            bindingSource1.DataSource = dataTable;
            // Prevent unwanted columns autogeneration
            dataGridView1.AutoGenerateColumns = false;
            // Provide the binding to the DataGridView
            dataGridView1.DataSource = bindingSource1; 


    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    dimanche 7 mai 2017 07:39
  • Bonjour,

    Merci de m'avoir répondu. Je te trouve ton code intéressant si on souhaitait creer dynamiquement les colonnes mais la mon datagridview est crée avec un DATATABLE.

    voila mon code:

      private void textBoxToutesCommande_TextChanged(object sender, EventArgs e)

            {

               

                MyConnexionStringCLASS ConnexionDatagridview = new MyConnexionStringCLASS();

                ConnexionDatagridview.Connexionstring();

                MySqlAdapterNomAcheteure = new SqlDataAdapter("select * from COMMANDE where DESIGNATION like '%" + textBoxToutesCommande.Text.ToString() + "%' or NOM_ACHETEUR like '%" + textBoxToutesCommande.Text.ToString() + "%' or REFERENCE like '%" + textBoxToutesCommande.Text.ToString() + "%'", MyConnexionStringCLASS.CONN);

                try

                {

                    dt.Clear();

                    MySqlAdapterNomAcheteure.Fill(dt);

                }

                    catch { }

            }

    J'ai des colonnes comme: code article, nom article, quantité, etc....

    Toutes les données sont bien affiché avec datagridview quand je lance le programme.

    si je fais la recherche, j'obtient le résultat sauf que la première cellule de la première colonne perd sa donnée mais les autres cellules et les autres colonnes gardent bien leur donnée.

    J'espere que je me suis bien expliqué?

    cordialement,

    dimanche 7 mai 2017 11:21
  • Pouvez-vous poster votre code autrement car sincèrement votre code est illisible. Vous êtes dans un fond d'écran noir et un gris foncé.

    Pour mettre votre code dans le forum utilisez l'onglet "Insérez un block de code" dans l'éditeur du forum. 

    J'ai besoin du code de la méthode Text_Changed and de l'initialisation de votre datagridview avant d'effectuer une recherche pour pouvoir vous aider d'avantage.

    Merci d'avance


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;

    dimanche 7 mai 2017 11:33
  • Bonjour,

    Voila mes codes

     private DataTable dt;
            private SqlDataAdapter MySqlAdapterNomAcheteure;
            private void ToutesLesCommandes_Load(object sender, EventArgs e)
            {
                MyConnexionStringCLASS ConnexionDatagridview = new MyConnexionStringCLASS();
                ConnexionDatagridview.Connexionstring();
    
                dt = new DataTable();
                MySqlAdapterNomAcheteure = new SqlDataAdapter("select * from COMMANDE", MyConnexionStringCLASS.CONN);
    
                try
                {
                    MySqlAdapterNomAcheteure.Fill(dt);
                    dataGridViewToutesLesCommandes.DataSource = dt;
                }
                catch { }
    
                dataGridViewToutesLesCommandes.Columns["CommandeID"].Visible = false;            
            }
     private void textBoxToutesCommande_TextChanged(object sender, EventArgs e)
            {
               
                MyConnexionStringCLASS ConnexionDatagridview = new MyConnexionStringCLASS();
                ConnexionDatagridview.Connexionstring();
    
                MySqlAdapterNomAcheteure = new SqlDataAdapter("select * from COMMANDE where DESIGNATION like '%" + textBoxToutesCommande.Text.ToString() + "%' or NOM_ACHETEUR like '%" + textBoxToutesCommande.Text.ToString() + "%' or REFERENCE like '%" + textBoxToutesCommande.Text.ToString() + "%'", MyConnexionStringCLASS.CONN);
                try
                {
                    dt.Clear();
                    MySqlAdapterNomAcheteure.Fill(dt);
                }
                    catch { }
            }
         



    dimanche 7 mai 2017 11:49
  • Avez-vous vérifiez que ce n'est pas un soucis de données?? ==> Il se peut que le résultat de votre requête ne renvoie pas de valeur sur la première colonne.

    Si toutes les valeurs s'affichent sauf celle de la première colonne et que vous avez également mis la propriété AutoGenerateColumns à true dans votre DatagridView dans ce cas voici un code à adapter pour la création dynamique des colonnes de votre datagridview via un datatable dans cet article : http://1bestcsharp.blogspot.fr/2014/12/c-how-to-bind-datagridview-with.html

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post

    Vous pouvez me suivre sur Twitter : https://twitter.com/NordineMhoumadi


    Download my NEW FREE application MCP PREPARATION in the Windows 10 Store for preparing your Microsoft Certification or test your skills in Microsoft Technologies;


    dimanche 7 mai 2017 12:24
  • Bonjour,

    Toutes les données sont affichées quand je démarre le programme. 

    C'est quand je met une valeur textbox pour la recherche, la première cellule de la première colonne perd sa donnée. Mais je vais quand même revoir ma requête dans textbox_textboxchange. 

    Merci

    dimanche 7 mai 2017 13:12