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 :

Probléme de date entre app c# et sql


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Probléme de date entre app c# et sql
    Bonjour ,

    je suis entrain de développer une application lors de l'ajout d'un formulaire qui contient un datetimepicker vers la BD qui contient un champs date l'enregistrement se fait mais avec une autre date hors celle qui a été choisi par le datetimepiker ci joint mon code pour la bd
    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
    CREATE TABLE [dbo].[ligne_devis](
    	[num_devis] [nvarchar](50) NOT NULL,
    	[id_produit] [int] IDENTITY(1,1) NOT NULL,
    	[Client] [nvarchar](250) NOT NULL,
    	[date_livraison] [datetime] NOT NULL,
    	[famille_produit] [nvarchar](50) NULL,
    	[ref_produit] [nvarchar](50) NOT NULL,
    	[designation] [nvarchar](250) NULL,
    	[qte] [int] NOT NULL,
    	[conditionnement] [nvarchar](250) NULL,
    	[remise] [float] NULL,
    	[pu_net] [float] NULL,
    	[montant_ht] [float] NOT NULL,
    	[montant_ttc] [float] NULL,
    	[tva] [float] NULL,
    	[unite] [nvarchar](50) NULL,
    	[nom_fournisseur] [nvarchar](50) NULL
    )
    Code C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       SqlConnection con = new SqlConnection(Global.cn);
                    con.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandText = "insert into ligne_devis values ('" + tb_num_devis.Text + "','" + info_client.Text + "'," + dt_client.Value.ToString()+ ",'" + cb_famille_produit.Text + "','" + cb_ref_produit.Text + "','" + tb_designation.Text + "'," + tb_qte.Text.Replace(",", ".") + ",'" + tb_conditionnement.Text + "'," + tb_remise.Text.Replace(",", ".") + "," + tb_pu_net.Text.Replace(",", ".") + "," + montant_ht.ToString().Replace(",", ".") + "," + montant_ttc.ToString().Replace(",", ".") + "," + cb_tva.Text.Replace(",", ".") + ",'" + cb_unite.Text + "','"+cb_four.Text+"')";
                    cmd.Connection = con;
                    cmd.ExecuteNonQuery();
                    con.Close();
                    MessageBox.Show("Ajout effectué avec succé !");
    Merci de votre aide lors de l’exécution par exemple je choisi la date aujourd’hui 2014-03-17 dans le datetimepike sur sql je retrouve 1905-06-18 00:00:00.000

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Il faut utiliser les requêtes paramétrées. Elles offrent plusieurs avantages, dont les principaux :
    • Plus besoin de se soucier des formats de date, de nombre, etc.
    • Protection contre les attaques par injection SQL
    • Fige le plan d'exécution de la requête

    Il ne faut pas hésiter à les utiliser de partout, il s'agit d'une best-practice.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Points : 762
    Points
    762
    Par défaut
    Salut,
    en utilisant une requête paramètrée ça devrait se faire "automatiquement"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SqlConnection con = new SqlConnection(Global.cn);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = "insert into ligne_devis values (@numDevis, @infoClient, @dateClient,  ... les autres paramètres)";
                cmd.Connection = con;
                cmd.Parameters.Add(new SqlParameter("@numDevis", tb_num_devis.Text));
                cmd.Parameters.Add(new SqlParameter("@infoClient", info_client.Text));
                cmd.Parameters.Add(new SqlParameter("@dateClient", dt_client.Value));
                cmd.Parameters.Add(...));
                ...
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Ajout effectué avec succé !");
    A+

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2014
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Il faut utiliser les requêtes paramétrées. Elles offrent plusieurs avantages, dont les principaux :
    • Plus besoin de se soucier des formats de date, de nombre, etc.
    • Protection contre les attaques par injection SQL
    • Fige le plan d'exécution de la requête

    Il ne faut pas hésiter à les utiliser de partout, il s'agit d'une best-practice.

    ok merci je vais essaie de faire cette façon
    A+

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

Discussions similaires

  1. [2.x] Problème de date entre le formulaire et la base
    Par laupas dans le forum Symfony
    Réponses: 4
    Dernier message: 09/05/2012, 14h06
  2. [MySQL] petit problème de date entre PHP et mySQL
    Par SylvainVV dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/08/2009, 11h54
  3. [WD12] probléme de date entre WD12 et SQL server 2005
    Par Bassemca dans le forum WinDev
    Réponses: 5
    Dernier message: 19/12/2008, 21h27
  4. problème de date entre 2 ordinateurs
    Par Kenia dans le forum Access
    Réponses: 4
    Dernier message: 09/10/2006, 12h35
  5. Problème de date avec un trigger PL/SQL
    Par fluec-wa dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/01/2006, 14h56

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