Afficher le data dans Datagridviws cell ou le id est au cell0

Résolu/Fermé
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021 - 1 juil. 2021 à 12:02
Whismeril Messages postés 17995 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 novembre 2022 - 1 juil. 2021 à 23:32
Bonjour,
salut, j'ai un datagridview ou je récupère les Id et le montant au premier et deuxieme colonne,
mais la troisième colonne devrait m'afficher un code fonction par exemmple par rapport au
dataGridView2.Rows[dvd].Cells[0].
Value de la première collone
mais, il me les affiche en bas au lieu que ca soir sur la meme ligne

voici le code ca marche mais il n'affiche pas sur la meme ligne

void recherch()
        {
            cnx = new SqlConnection(db.RXcon);
            try
            {
                cnx.Open();
            }
            catch
            {
                MessageBox.Show("Erreure lors de la Connexion");
            }
            if (dataGridView2.Rows.Count>0)
            {
                for (int dvd = 0; dvd < dataGridView2.Rows.Count; dvd++)
                {
                    
                    string ct = "select grade from fction inner join person on person.id= fction.id where  id ='" + dataGridView2.Rows[dvd].Cells[0].Value + "'";
                    commd222 = new SqlCommand(ct);
                    commd222.Connection = cnx;
                    try
                    {
                        SqlDataReader d = commd222.ExecuteReader();
                        d.Read();
                        DataGridViewRow Row = (DataGridViewRow)dataGridView2.Rows[0].Clone();
                        Row.Cells[2].Value = d["grade"].ToString();
                        d.Close();
                        dataGridView2.Rows.Add(Row);
                    }
                    catch (Exception tt)
                    {
                        MessageBox.Show(tt.Message.ToString());
                    }
                    finally
                    {

                    }
                }
            
           
            }


voici ce qu'il donne

Configuration: Macintosh / Firefox 78.0

5 réponses

Whismeril Messages postés 17995 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 novembre 2022 871
1 juil. 2021 à 12:33
Bonjour

C# est un langage objet qui est pensé pour le pattern MVC même en winform.
Ce que tu montres comme code n’utilise pas ces pratiques et en gros c’est du bricolage.



Du coup, un truc qui marche et qui (de mon point de vue) est une bonne façon de coder serait d’écrire une classe métier qui contient les infos extraites de la base de données est qui fait les calculs qui vont bien (ton fameux code par exemple)
Tu charges une collection de cette classe depuis la base de données et tu la bindes sur le datagridview.

Voir ce petit tuto

https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource

0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
1 juil. 2021 à 12:36
salut, le problème est juste d'afficher selon l'image à la meme ligne que le ID
0
Whismeril Messages postés 17995 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 novembre 2022 871
1 juil. 2021 à 13:08
Oui et bien coder en c# sans bricoler y répond.
0
remiki90 Messages postés 132 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 27 décembre 2021
1 juil. 2021 à 13:34
j'ai résolu ça

void gab2relik()
{
    if (dataGridView2.Rows.Count == 0) return;
    
    using (var conn = new SqlConnection(db.RXcon))
    using (var cmd = new SqlCommand("SELECT grade FROM fction INNER JOIN person ON person.id = fction.id WHERE fction.id = @ID", conn))
    {
        // TODO: Specify the correct data type and size for the parameter:
        var pID = cmd.Parameters.Add("@ID", SqlDbType.VarChar);
        
        try
        {
            conn.Open();
        }
        catch
        {
            MessageBox.Show("Erreure lors de la Connexion");
            return;
        }
        
        foreach (DataGridViewRow row in dataGridView2.Rows)
        {
            pID.Value = row.Cells[0].Value ?? DBNull.Value;
            row.Cells[2].Value = cmd.ExecuteScalar();
        }
    }
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 17995 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 25 novembre 2022 871
1 juil. 2021 à 23:32
Si tu préfères continuer à bricoler et ne pas profiter de la puissance de C#.....
0