Partage
  • Partager sur Facebook
  • Partager sur Twitter

Convertir String vers Date et Heures en C#

String vers Date et Heures

    31 janvier 2021 à 7:02:01

    Salut les Amis, j'ai une datagridview qui récupère les données d'un fichier qui a une colonne date et heure, j'aimerais enregistrer cela vers Mysql 

    - string  vers Date en Mysql

    - string vers Time en Mysql

    string dates = dataGridView1.Rows[i].Cells[0].Value.ToString();// "11/02/2020", ceci est la valeur que contient dates, j'aimerai convertir Vers Date en Mysql, comment convertir
    string hr = dataGridView1.Rows[i].Cells[1].Value.ToString(); // "17:48:55", ceci est la valeurs que contient hr, comment  Convertir cela vers format Time en Mysql



    -
    Edité par Lourd 31 janvier 2021 à 7:39:56

    • Partager sur Facebook
    • Partager sur Twitter
      1 février 2021 à 11:08:19

      Pourquoi ne pas utiliser qu'un champ "DateTime" ?

      Pourquoi ne pas utiliser une DataSource typée pour votre DataGridView, qui utilisera un simple DataAdapter avec des requêtes paramétrées ?

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        1 février 2021 à 11:35:36

        la valeur qui est dans la collonne de dataGridView est un String "11/02/2020" or quand j'essai de convertir cela en DateTime j'obtien une date avec l'heure, dans mon cas j'ai juste besion de la date simplement pour le premier cas et l'heure dans un second cas

          string dates = dataGridView1.Rows[i].Cells[0].Value.ToString();
        DateTime Date = Convert.ToDateTime(dates);// Ceci me donne une date avec heure, 
        je cherche à ne reste qu'avec Date pour inserer cela dans un Champ de type Date Dans Mysql
        • Partager sur Facebook
        • Partager sur Twitter
          2 février 2021 à 16:27:24

          Ne confondez pas l'affichage et les données.

          Le fait que vous utilisiez une "DATE" et un "TIME" dans votre base de données MySQL est vraisemblablement une erreur de conception, car vous ne disposez pas des informations de timezone avec ce découpage inutilement lourd.

          La représentation interne des données dans votre programme (couche métier) ne doit pas dépendre du format d'affichage des informations à l'utilisateur, qui, normalement, devrait être à sa discrétion et non à celle du développeur de l'application.

          Et, il est largement plus flexible d'utiliser des timestamps/DateTime que de s'enquiquiner avec 2 valeurs "arbitraires".

          En attendant de corriger votre modèle de base de données, vous pouvez très bien fusionner les champs venant de la base et aussi afficher les données selon les desiderata de l'utilisateur final, tout en conservant des DateTime dans la couche métier.

          Ne considérez pas votre DataGridView comme une simple grille, utilisez sa propriété  DataSource pour l'alimenter en données et configurez la pour qu'elle aille chercher elle même les données dans la source et qu'elle fasse elle-même les conversions nécessaire à l'affichage.

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            2 février 2021 à 18:11:08

            Au fait datagriview est remplit par les données qui viennent d'un fichier txt et il a cette configuration la une colonne qui a des dates et une colonne qui a l'heure
            • Partager sur Facebook
            • Partager sur Twitter
              2 février 2021 à 19:33:28

              Que les données viennent d'un fichier ou d'une base de données, c'est la même chose.

              Les données dans les fichiers ne sont pas top d'un point de vue conception.

              La fusion dans la couche métier est la même, que les données viennent d'un fichier ou d'une base de données.

              Il faudrait corriger le module constructeur de ces fichiers pour qu'il évite de couper les cheveux en 4.

              Si vous faites juste un frontal à vos fichiers, vous ne devriez écrire aucun code et juste utiliser les outils de scaffolding.

              Si vous devez faire un ETL des fichiers vers MySQL, la DataGridView n'a rien à faire sur le chemin.

              C'est au code métier de faire les conversions, qu'il y ait une IHM ou pas, ça change rien.

              Donc, votre problème n'a rien à voir avec une DataGridView, mais juste comment faire le passe plat entre les fichiers et MySQL ?

              Avez-vous déjà créé et configuré le DataAdapter en charge de la synchronisation entre votre base de données MySQL et les données de votre couche métier (un DataSet par exemple) ?

              Sur le papier, vous n'avez qu'à prendre les données dans le DataSet issu du chargement de vos fichiers et de faire les actions de "CRUD" sur le DataSet issu du chargement des données de votre base SQL, en renvoyant ce 2ème DataSet à la méthode "Save" du DataAdapter, la base sera automatiquement mise à jour.

              En résumé, si vous utilisez des outils "modernes" vous n'aurez pas à convertir les données mais juste à configurer le DataAdapter.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

              Convertir String vers Date et Heures en C#

              × 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