Et bien bonjour à tous je reviens à l'assaut en ces lieux pour encore vous demandez de l'aide. Souvenez vous, j'ai demandé de l'aide hier pour me débloqué pour l'affichage dans un datagridview (les données étant dans un serveur distant mysql). Soit, j'ai bien avancé, voici mon problème :

Une textbox va contenir un ID produit, une autre textbox va contenir le nom du produit. L'utilisateur va pouvoir choisir de faire une recherche soit par l'ID produit soit par son nom.

Pour ce qui est de la recherche par ID produit, ca marche. A l'inverse, la recherche par le nom du produit ne fonctionne pas

Voici le code!

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
private void button1_Click(object sender, EventArgs e)
        {
            //Définition
            string valeur_txtbox1;
            string valeur_txtbox2;
 
            //Ces deux méthodes définis auparavant permettent de retourner la valeur qu'il y a dans la textbox
            valeur_txtbox1 = get_txtbox(textBox1.Text);
            valeur_txtbox2 = get_txtbox(textBox2.Text);
 
            //Création du Dataset
            DataSet ds = new DataSet();
 
            //Chaine de connexion
            MySQLDriverCS.MySQLConnection conn = new MySQLDriverCS.MySQLConnection(new MySQLDriverCS.MySQLConnectionString("www.lala.com", "bdd", "login", "mdp").AsString);
 
            //Tentative de connexion
            try
            {
                conn.Open();
            }
            catch (Exception)
            {
                MessageBox.Show("ERREUR DE CONNEXION !!");
            }
 
            //Choisir CIP ou Nom du produit ??
            if (valeur_txtbox1 == "")
            {
 
                if (valeur_txtbox2 == "")
                {
                    //Aucun des deux n'est choisi
                    MessageBox.Show("Veuillez remplir un des deux champs proposés");
                }
                else
                {
                    //Nom produit
                    MySQLDriverCS.MySQLDataAdapter MyAdapter = new MySQLDriverCS.MySQLDataAdapter("SELECT CODE_CIP_PRODUIT, NOM_PRODUIT FROM produit WHERE NOM_PRODUIT = " + valeur_txtbox2, conn);
                    MyAdapter.Fill(ds, "produit");
                    dataGridView1.DataSource = ds.Tables["produit"].DefaultView;
                    /*||||||||||||||*/
                 }
            }
            else
            {
                //CIP
                MySQLDriverCS.MySQLDataAdapter MyAdapter = new MySQLDriverCS.MySQLDataAdapter("SELECT CODE_CIP_PRODUIT,NOM_PRODUIT FROM produit WHERE CODE_CIP_PRODUIT = " + valeur_txtbox1, conn);
                MyAdapter.Fill(ds, "produit");
                dataGridView1.DataSource = ds.Tables["produit"].DefaultView;
                /*||||||||||||||*/
            }
 
            conn.Close();
        }
Comme vous pouvez le remarquer dans ce code, à chaque fois que l'utilisateur va lancer la recherche, le DGV va se vider et mettre )à nouveau le résultat, avant de me casser la tête à coder, j'ai réfléchi a plusieurs solution :

1. Mettre une boucle jusqu'à ce que un Button (appelons le ARRET) soit enclenché. Mais je pense pas que ca marche
2. Et je pense que c'est une meilleur solution, mettre cette ligne de code à la place du /*||||||||||||||*/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
maDataGrid.SelectedRows(maDatagrid.Rowcount -1)
Merci pour les éventuelles aides et idées me permettant d'avancer dans mon projet personnel