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

Windows Forms Discussion :

Utiliser un DateTimePicker dans une classe [Débutant]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2022
    Messages : 1
    Par défaut Utiliser un DateTimePicker dans une classe
    Bonjour,

    Je fais un annuaire d'entreprise sous C# avec Winform, j'ai une classe ManagerPerson qui me sert à rajouter des salariés dans mon annuaire et je dois inclure une date que l'on choisi avec un dateTimePicker (nommé dateTimePicker_Date), dans Form (J'ai nommé Appli), je peux l'utiliser et je souhaiterais pouvoir l'utiliser dans ManagerPerson.

    Le soucis, c'est que je sais pas comment je peux faire. Pouvez vous m'aider ?
    Le programme princpale : Appli.cs
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    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 Newtonsoft.Json;
    using System.Net.Http;
    using System.Net.Http.Headers;
     
    // Librairie MySQL ajoutée dans les références.
    using MySql.Data.MySqlClient;
     
    namespace Annuaire
    {
        public partial class Appli : Form
        {
            ManagerPerson managerPerson = new ManagerPerson(); //Pour appeler la class ManagerPerson
     
            public Appli()
            {
                InitializeComponent();
            }
            public static class Date_Value
            {
                public static DateTime CurrentValue { get; set; }
            }
     
            private void label_Recherche_Click(object sender, EventArgs e)
            {
     
            }
     
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            { 
                managerPerson.connection.Open(); //Ouvrir la connexion à la BDD
                // Requête SQL
                object ID_DataGridView = dataGridView1.CurrentRow.Index + 1;
                managerPerson.cmd.CommandText = "SELECT Date_Arrivee FROM users WHERE ID = '"+ ID_DataGridView + "';"; //Défini la requete pour récuperer la Date d'arrivée par rapport à l'ID
                managerPerson.Reader = managerPerson.cmd.ExecuteReader();
     
                if (managerPerson.Reader.HasRows)
                {
     
                    if (managerPerson.Reader.Read())
                    {
                        string IDt = Convert.ToString(managerPerson.Reader[0]); //Converti l'objet en string
                        dateTimePicker_Date.Value = DateTime.Parse(IDt); //Affiche la date sur le DateTimePicker
                    }
     
                }
                managerPerson.connection.Close(); //Ferme la connexion à la BDD
            }
     
     
            public void RechercheBDD()
            {
                string Text_Recup = textBox_Recherche.Text; //Récuperer le texte qui est dans le textbox 
                dataGridView1.Rows.Clear(); //Efface le DGV
     
                managerPerson.connection.Open();
                // Requête SQL
                managerPerson.cmd.CommandText = "SELECT * FROM users WHERE ID='" + Text_Recup + "' OR Prenom='" + Text_Recup + "' OR Nom='" + Text_Recup + "' OR Telephone='" + Text_Recup + "' OR Service='" + Text_Recup + "' OR Date_Entree='" + Text_Recup + "' "; //Défini la requete pour se connecter a la table users
                managerPerson.Reader = managerPerson.cmd.ExecuteReader();
     
                if (managerPerson.Reader.HasRows)
                {
                    while (managerPerson.Reader.Read())
                    {
                        dataGridView1.Rows.Add(managerPerson.Reader[0].ToString(), managerPerson.Reader[1].ToString(), managerPerson.Reader[2].ToString(), managerPerson.Reader[3].ToString(), managerPerson.Reader[4].ToString(), managerPerson.Reader[5].ToString()); //Affiche dans le DGV
                    }
                }
                managerPerson.connection.Close();
            }
     
            public void LoadGrid() //Affiche dans le DGV la BDD
            {
                dataGridView1.Rows.Clear();
     
                managerPerson.connection.Open();        
                // Requête SQL
                managerPerson.cmd.CommandText = "SELECT * FROM users"; //Défini la requete pour se connecter a la table users
                managerPerson.Reader = managerPerson.cmd.ExecuteReader();
     
                if (managerPerson.Reader.HasRows)
                {
                    while (managerPerson.Reader.Read())
                    {
                        dataGridView1.Rows.Add(managerPerson.Reader[0].ToString(), managerPerson.Reader[1].ToString(), managerPerson.Reader[2].ToString(), managerPerson.Reader[3].ToString(), managerPerson.Reader[4].ToString(), managerPerson.Reader[5].ToString());
                    }
                }
                managerPerson.connection.Close();
            }
     
     
     
            private void Button_Quitter_Click(object sender, EventArgs e)
            {
                managerPerson.connection.Close();
                Application.Exit(); //Ferme l'appli
            }
     
            private void Button_Recherche_Click(object sender, EventArgs e)
            {
                RechercheBDD(); //Appel de RechercheBDD
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                managerPerson.cmd.Connection = managerPerson.connection;
                LoadGrid(); //Appel de LoadGrid
            }
     
            private async void button_Add_User_Click(object sender, EventArgs e)
            {
                await managerPerson.AddContact(); //Appel de AddContact pour ajouter un utilisateur dans le BDD
                LoadGrid(); //Appel de LoadGrid pour actualiser le DGV
            }
     
            private void textBox_Recherche_TextChanged(object sender, EventArgs e)
            {
     
            }
     
            private void dateTimePicker_Date_ValueChanged(object sender, EventArgs e)
            {
     
            }
     
            private void button_Test_Click(object sender, EventArgs e)
            {
                Date_Value.CurrentValue = dateTimePicker_Date.Value;
                Console.WriteLine(Date_Value.CurrentValue);
            }
        }
    }
    ManagerPerson.cs
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    using System.Net.Http;
    using System.Net.Http.Headers;
    using Newtonsoft.Json;
     
    // Librairie MySQL ajoutée dans les références.
    using MySql.Data.MySqlClient;
     
    namespace Annuaire
    {
        public class ManagerPerson 
        {
            Personnes Personnes = new Personnes();
     
     
            public MySqlConnection connection = new MySqlConnection("SERVER=127.0.0.1; DATABASE=annuaire; UID=root; PASSWORD=; Convert Zero Datetime=True;"); //Défini la connexion à la BDD
            public MySqlDataReader Reader;
            public MySqlCommand cmd = new MySqlCommand();
     
     
            private static readonly HttpClient client = new HttpClient(); //Défini client pour HttpClient
     
            // Constructeur
            public ManagerPerson()
            {
     
            }
     
            public async Task AddContact() //Fonction pour ajouter un contact
            {
                var streamTask = await client.GetStringAsync("https://randomuser.me/api/?nat=fr"); //Appel de l'API
     
                dynamic repositories = JsonConvert.DeserializeObject(streamTask); //déconcaténation du résultat de l'API
     
                Personnes.Prenom = repositories.results[0].name.first; //Récupération du Prénom
                Personnes.Nom = repositories.results[0].name.last; //Récupération du Nom
                Personnes.Telephone = repositories.results[0].phone; //Récupération du Téléphone
                Personnes.Service = repositories.results[0].id.name; //Récupération du Service
                //Personnes.Date_Entree = CurrentValue;//Récupération de la Date D'arrivée
                //Console.WriteLine(Personnes.Date_Entree);
                string Date_Entree_Def = ""+ Personnes.Date_Entree.Year + "/" + Personnes.Date_Entree.Month + "/" + Personnes.Date_Entree.Day +""; //Mets dans le bon format la date sous forme de AAAA/MM/JJ
                Personnes.Telephone = new string((from Carac in Personnes.Telephone where char.IsWhiteSpace(Carac) || char.IsLetterOrDigit(Carac) select Carac).ToArray()); //Supression des "-"
     
                try
                {
                    // Requête SQL
                    string Query = "INSERT INTO Users (Prenom, Nom, Telephone, Service, Date_Arrivee) VALUES ('" + Personnes.Prenom + "','" + Personnes.Nom + "','" + Personnes.Telephone + "','" + Personnes.Service + "','" + Date_Entree_Def + "');";
     
                    MySqlCommand Cmd = new MySqlCommand(Query, connection); 
                    MySqlDataReader Reader;
                    connection.Open();
                    Reader = Cmd.ExecuteReader();
                    while (Reader.Read())
                    {
                        Console.WriteLine(Reader.GetString(0));
                    }
                    // Fermeture de la connexion
                    connection.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 986
    Par défaut
    Vouloir passer un composant à une classe d'accès aux données est une mauvaise idée.
    Ce que vous devez passer, c'est la date et non le datetimepicker !

    Pour le comment, je n'en ai aucune idée puisque je ne parvient pas à comprendre votre logique.
    ManagerPerson semble être une couche d'accès aux données et pourtant vous faites des requêtes dans l'IHM.
    Et même au sein de votre couche d'accès aux données, vous mélangez des requêtes SQL avec des appels d'API.
    Il devient urgent d'apprendre à séparer les choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IDE] Utiliser un composant dans une classe sans IHM
    Par Pascale38 dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/08/2011, 13h16
  2. utiliser des tableaux dans une class
    Par artemis93 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 24/04/2011, 11h45
  3. utilisation d'objet dans une class
    Par turican2 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2009, 15h43
  4. Réponses: 10
    Dernier message: 30/11/2008, 21h17
  5. Utilisation de EnumChildWindows dans une class
    Par davels dans le forum Langage
    Réponses: 5
    Dernier message: 31/07/2007, 21h59

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