Partage
  • Partager sur Facebook
  • Partager sur Twitter

comparer deux date

    31 juillet 2016 à 1:42:05

    Bonsoir

    je cherche à comparer une date dans mon datagridview avec un datetimepicker et ensuite coloré la ligne de cette date dans le datagrid

    svp j'ai besoin d'aide

    merci

    • Partager sur Facebook
    • Partager sur Twitter
    P
      31 juillet 2016 à 22:52:52

      Pourrais-tu mettre les morceaux de codes suivants :

      • La methode de récupération de la date stocké dans ton datagridview,
      • La methode de récupération de la date via le datetimepicker,
      • Le code source du datagrid.
      • Partager sur Facebook
      • Partager sur Twitter
        1 août 2016 à 0:25:11

        voila mon code complet 
        using System;
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        using System.Windows.Forms;
        using System.Data.SqlClient;
        using MySql.Data.MySqlClient;
        namespace projet_stage
        {
            public partial class Form3 : Form
            {
                //variable
                MySqlConnection con = new MySqlConnection(@"Server=localhost;Database=domaines;Uid=root;Pwd=;convert zero datetime=True");
                MySqlDataAdapter oda;
                MySqlCommandBuilder ocb;
                DataTable dt;
                MySqlDataReader dr;
                MySqlCommand cmd;
                //constructeur
                public Form3()
                {
                    InitializeComponent();
                    //colors datagridview
                    this.dataGridView2.RowsDefaultCellStyle.BackColor = Color.Bisque;
                    this.dataGridView2.AlternatingRowsDefaultCellStyle.BackColor = Color.Beige;
                }
                private void dateTimePicker1_KeyPress(object sender, KeyPressEventArgs e)
                {
                }
                private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
                {
                }
                //display data in textbox
                private void dataGridView2_MouseDoubleClick(object sender, MouseEventArgs e)
                {
                   try
                    {
                        textBox6.Text = dataGridView2.SelectedRows[0].Cells[0].Value.ToString();
                        textBox7.Text = dataGridView2.SelectedRows[0].Cells[1].Value.ToString();
                        dateTimePicker2.Text = dataGridView2.SelectedRows[0].Cells[2].Value.ToString();
                        dateTimePicker3.Text = dataGridView2.SelectedRows[0].Cells[3].Value.ToString();
                        textBox10.Text = dataGridView2.SelectedRows[0].Cells[4].Value.ToString();
                        textBox12.Text = dataGridView2.SelectedRows[0].Cells[5].Value.ToString();
                        textBox13.Text = dataGridView2.SelectedRows[0].Cells[6].Value.ToString();
                        textBox14.Text = dataGridView2.SelectedRows[0].Cells[7].Value.ToString();
                        textBox11.Text = dataGridView2.SelectedRows[0].Cells[8].Value.ToString();
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show(r.Message.ToString());
                    }
                }
                //btn to display domaine namee management
                private void button4_Click(object sender, EventArgs e)
                {
                    Form3 f = new Form3();
                    f.Show();
                    this.Hide();
                }
                //call methode to display data & change form name 
                private void Form3_Load(object sender, EventArgs e)
                {
                    mise_a_jour();
                    this.Text = "Name Domain Management"; 
                }
                // btn to display customers management
                private void button3_Click(object sender, EventArgs e)
                {
                    Form2 f = new Form2();
                    f.Show();
                    this.Hide();
                }
                //btn to display host management
                private void button5_Click(object sender, EventArgs e)
                {
                    this.Text = " About ";
                    Form5 a = new Form5();
                    a.Show();
                    this.Hide();
                }
                //btn to exit form
                private void button6_Click(object sender, EventArgs e)
                {
                    this.Close();
                }
                //alert to close form
                private void Form3_FormClosing(object sender, FormClosingEventArgs e)
                {
                    DialogResult dialog = MessageBox.Show("do you really want to exit!!", "exit", MessageBoxButtons.YesNo);
                    if (dialog == DialogResult.Yes)
                        Application.Exit();
                    else if (dialog == DialogResult.No)
                        e.Cancel = true;
                }
                // show password 
                private void checkBox1_CheckedChanged(object sender, EventArgs e)
                {
                    if (checkBox1.Checked)
                        textBox13.UseSystemPasswordChar = false;
                    else
                        textBox13.UseSystemPasswordChar = true;
                }
                private void bindingSource1_CurrentChanged(object sender, EventArgs e)
                {
                }
                // btn to look for domaine
                private void button1_Click(object sender, EventArgs e)
                {
                    try
                    {
                        int p = 0;
                        con.Open();
                        MySqlCommand cmd = new MySqlCommand("SELECT * FROM nomdomaine WHERE libelle='" + textBox7.Text + "'", con);
                        dr = cmd.ExecuteReader();
                        while (dr.Read())
                        {
                            if (dr["libelle"].ToString() == textBox7.Text)
                            {
                                textBox6.Text = dr["id_domaine"].ToString();
                                dateTimePicker2.Text = dr["dateDebut"].ToString();
                                dateTimePicker3.Text = dr["dateExpiration"].ToString();
                                textBox10.Text = dr["description"].ToString();
                                textBox12.Text = dr["login"].ToString();
                                textBox13.Text = dr["mdp"].ToString();
                                textBox14.Text = dr["IdClient"].ToString();
                                textBox11.Text = dr["IdHeb"].ToString();
                                p = 1;
                                break;
                            }
                        }
                        con.Close();
                        if (p == 0)
                        {
                            MessageBox.Show("Domaine introvable!!!");
                        }
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show(" Entrer la libelle du domaine que vous souhaitez chercher!!");
                    }
                }
                //btn to update domaine
                private void button9_Click(object sender, EventArgs e)
                {
                    try
                    {
                        con.Open();
                        MySqlDataAdapter oda = new MySqlDataAdapter("UPDATE nomdomaine SET libelle='" + textBox7.Text + "', dateDebut ='" + dateTimePicker2.Text + "', dateExpiration ='" + dateTimePicker3.Text + "', description ='" + textBox10.Text + "', login ='" + textBox12.Text + "',mdp ='" + textBox13.Text + "', IdClient =" + textBox14.Text + ",IdHeb=" + textBox11.Text + " WHERE id_domaine='" + textBox6.Text + "'", con);
                        oda.SelectCommand.ExecuteNonQuery();
                        con.Close();
                        MessageBox.Show("UPDATE SUCCEESSFULLY !!!");
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show("Séléctionnez le domaine que vous souhaitez modifier!!",r.Message.ToString());
                    }
                }
                //methode to populate datagrideview
                private void mise_a_jour()
                {
                   MySqlConnection con = new MySqlConnection(@"Server=localhost;Database=domaines;Uid=root;Pwd=;convert zero datetime=True");
                    oda = new MySqlDataAdapter("SELECT n.id_domaine, n.libelle, n.dateDebut, n.dateExpiration, n.description, n.login, n.mdp, c.IdClient, h.IdHeb  FROM nomdomaine n  JOIN Client c  ON c.IdClient=n.id_domaine  JOIN hebergeur h ON h.IdHeb =n.id_domaine ORDER BY n.libelle, n.dateDebut, n.dateExpiration, n.description, n.login, n.mdp", con);
                    dt = new DataTable();
                    oda.Fill(dt);
                    dataGridView2.DataSource = dt;
                }
                //btn to add domaine
                private void button2_Click(object sender, EventArgs e)
                {
                    try
                    {
                        con.Open();
                        MySqlCommand cmd = new MySqlCommand("INSERT INTO nomdomaine(id_domaine  , libelle ,  dateDebut , dateExpiration , description , login , mdp , IdClient ,  IdHeb ) VALUES (" + textBox6.Text + ",'" + textBox7.Text + "','" + dateTimePicker2.Text + "','" + dateTimePicker3.Text + "' ,'" + textBox10.Text + "','" + textBox12.Text + "','" + textBox13.Text + "','" + textBox14.Text + "'," + textBox11.Text + ")", con);
                        cmd.ExecuteNonQuery();
                        con.Close();
                        MessageBox.Show("ADD SUCCEESSFULLY !!!");
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show("Veuillez remplir les champs !!", r.Message.ToString());
                    }
                }
                // btn to delete domaine
                private void button7_Click(object sender, EventArgs e)
                {
                    try
                    {
                        con.Open();
                        MySqlCommand cmd = new MySqlCommand("DELETE FROM nomdomaine WHERE id_domaine=" + textBox6.Text + "", con);
                        cmd.ExecuteNonQuery();
                        con.Close();
                        MessageBox.Show("DELETE SUCCEESSFULLY !!!");
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show("Séléctionnez le domaine que vous souhaitez supprimer!!", r.Message.ToString());
                    }
                }
                private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
                {
                }
                //btn to refresh data
                private void button10_Click(object sender, EventArgs e)
                {
                    try
                    {
                        con.Open();
                        cmd = new MySqlCommand("select * from nomdomaine", con);
                        dr = cmd.ExecuteReader();
                        DataTable t = new DataTable();
                        t.Load(dr);
                        dataGridView2.DataSource = t;
                        con.Close();
                    }
                    catch (Exception r)
                    {
                        MessageBox.Show(r.Message.ToString());
                    }
                }
                }
            }
        }

        -
        Edité par Mar yama 1 août 2016 à 0:27:57

        • Partager sur Facebook
        • Partager sur Twitter
        P
          1 août 2016 à 9:04:34

          Pour plus de clarté, utilise les balises code ( icone </>) afin de formaté et de coloré ton code.

          Exemple :

          public void MaFonction(Object param1 Object param2){
            [...]
          }



          • Partager sur Facebook
          • Partager sur Twitter
            1 août 2016 à 12:12:48

            Destruct est ce que le code n'est pas claire ?

            • Partager sur Facebook
            • Partager sur Twitter
            P
              1 août 2016 à 12:37:47

              Non, en l'état, il ne l'est pas suffisamment pour que j'y jette un coup d’œil.

              • Partager sur Facebook
              • Partager sur Twitter
                1 août 2016 à 13:00:19

                la méthode que j'ai utilisé pour remplir mon datagrid

                 private void mise_a_jour()
                        {
                           MySqlConnection con = new MySqlConnection(@"Server=localhost;Database=domaines;Uid=root;Pwd=;convert zero datetime=True");
                            oda = new MySqlDataAdapter("SELECT n.id_domaine, n.	libelle, n.dateDebut, n.dateExpiration, n.description, n.login, n.mdp, c.IdClient, h.IdHeb  FROM nomdomaine n  JOIN Client c  ON c.IdClient=n.id_domaine  JOIN hebergeur h ON h.IdHeb =n.id_domaine ORDER BY n.libelle, n.dateDebut, n.dateExpiration, n.description, n.login, n.mdp", con);
                            dt = new DataTable();
                            oda.Fill(dt);
                            dataGridView2.DataSource = dt;
                        }

                pour inserer les données dans des text box j'ai utilisé la methode suivante

                  private void dataGridView2_MouseDoubleClick(object sender, MouseEventArgs e)
                        {
                           try
                            {
                                textBox6.Text = dataGridView2.SelectedRows[0].Cells[0].Value.ToString();
                                textBox7.Text = dataGridView2.SelectedRows[0].Cells[1].Value.ToString();
                                dateTimePicker2.Text = dataGridView2.SelectedRows[0].Cells[2].Value.ToString();
                                dateTimePicker3.Text = dataGridView2.SelectedRows[0].Cells[3].Value.ToString();
                                textBox10.Text = dataGridView2.SelectedRows[0].Cells[4].Value.ToString();
                                textBox12.Text = dataGridView2.SelectedRows[0].Cells[5].Value.ToString();
                                textBox13.Text = dataGridView2.SelectedRows[0].Cells[6].Value.ToString();
                                textBox14.Text = dataGridView2.SelectedRows[0].Cells[7].Value.ToString();
                                textBox11.Text = dataGridView2.SelectedRows[0].Cells[8].Value.ToString();
                            }
                            catch (Exception r)
                            {
                                MessageBox.Show(r.Message.ToString());
                            }
                        }




                • Partager sur Facebook
                • Partager sur Twitter
                P
                  1 août 2016 à 13:19:23

                  La première chose à faire sera de convertir les String en véritable DateTime. Ensuite, grâce à la méthode Subtract(DateTime), qui retourne un TimeSpan, tu peux savoir si une date est supérieur/inférieur à une autre, ou si elles sont toutes les deux égales.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 août 2016 à 14:22:50

                    if(this.dataGridView2.Columns[e.ColumnIndex].DataPropertyName=="return_date")
                                {
                                    var returnDate = Convert.ToDateTime(dataGridView2.Rows[e.RowIndex].Cells["return_date"].Value);
                                    var borrowDate = Convert.ToDateTime(dataGridView2.Rows[e.RowIndex].Cells["borrow_date"].Value);
                                    if(returnDate > borrowDate )
                                    {
                                        e.CellStyle.BackColor = Color.Red;
                                    }
                                }
                    ce code ne donne aucun resulatat

                    -
                    Edité par Mar yama 1 août 2016 à 14:27:41

                    • Partager sur Facebook
                    • Partager sur Twitter
                    P
                      1 août 2016 à 16:10:17

                      Le débogueur dit quoi ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        2 août 2016 à 14:36:39

                        merci @bacelor g réglé   le problem

                         private void date()
                                {
                                   for (int i = 0; i < dataGridView2.Rows.Count; i++)
                                    {
                                        var val = Convert.ToDateTime(dataGridView2.Rows[i].Cells["dateExpiration"].Value.ToString());
                                        var val2 = Convert.ToDateTime(dateTimePicker1.Text);
                                        int result = DateTime.Compare(val, val2);
                                        
                                        if (result ==0 )
                                        {
                                            dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.Red;
                                            timer1.Start();
                                                MessageBox.Show("same date ");      
                                        }
                                        else if (result<0)
                                        {
                                            dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.Green;
                                            TimeSpan ts = val2 - val;
                                            int differenceInDays = ts.Days;
                                                MessageBox.Show("reste encore " + differenceInDays + "jours");
                                        }
                                    }



                        • Partager sur Facebook
                        • Partager sur Twitter
                        P

                        comparer deux date

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown