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

VB.NET Discussion :

Problème d'insertion de valeur null de date


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut Problème d'insertion de valeur null de date
    Bonjour le forum je souhaite dans certain cas lors de l'insertion de données que la colonne date soit vide et pour cela
    j'ai écrit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Private Sub dtpDateDenlevement_ValueChanged(sender As Object, e As EventArgs) Handles dtpDateDenlevement.ValueChanged
            If (txtDate.Text.ToString Is Nothing) Then
                dtpDateDenlevement.Format = DateTimePickerFormat.Custom
                dtpDateDenlevement.CustomFormat = " "
     
            Else
                dtpDateDenlevement.Format = DateTimePickerFormat.Short
                txtDate.Text = dtpDateDenlevement.Value.ToShortDateString
            End If
        End Sub
    pour récupérer la valeur DateTimePicker dans un txtDate.Text si nécessaire mais dans le cas contraire le champ txtDate.Text doit être vide
    mais lors de l'insertion de données j’obtiens toujours une date mais différente de la date du système
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert INTO [dbo].[EDITIONBONENLEVEMENT] (Numero,[Date_Bon])
    values('" & txtNumero.Text & "',(SELECT CONVERT(DATE,'" & txtDate.Text.ToString & "',103)))
    Nom : DATE.PNG
Affichages : 251
Taille : 5,2 Ko or j'aurais voulu avoir des valeurs null
    pouvez m'aider à résoudre se problème?

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Une piste, peut-être ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If txtDate.Text = String.Empty Then
       insert INTO [dbo].[EDITIONBONENLEVEMENT] (Numero,[Date_Bon]) values('" & txtNumero.Text & "'")
    Else
       insert INTO [dbo].[EDITIONBONENLEVEMENT] (Numero,[Date_Bon]) 
         values('" & txtNumero.Text & "',(SELECT CONVERT(DATE,'" & txtDate.Text & "',103)))
    End If

  3. #3
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Bonsoir Phil Rob très bonne idée sa marche merci

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Deux autres solutions :

    La plus pourrie :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert INTO [dbo].[EDITIONBONENLEVEMENT] (Numero,[Date_Bon])
    values('" & txtNumero.Text & "',(SELECT nullif(CONVERT(DATE,'" & txtDate.Text.ToString & "',103), '1900-01-01')))

    La seconde, la seule qui devrait être utilisée :
    PASSER PAR DES REQUÊTES PARAMETREES

    https://docs.microsoft.com/fr-fr/dot...tframework-4.8

    Sans requêtes paramétrées :
    - Vos performances sont drastiquement réduites
    => Le SGBD va mettre en cache toutes les requêtes, au lieu de ne conserver qu'un unique plan dans lequel il n'a qu'à modifier les paramètres. Du coup, consommation anormale de mémoire, et exploitation des outils de tunning quasi impossible
    - Votre application est instable
    => La moindre valeur imprévue dans un paramètre (par exemple, présence d'une quote) et votre application va planter, voir pire, avoir des comportements incohérents
    - Votre application n'est pas sécurisée
    => Un hacker peut profiter des requêtes non paramétrées pour injecter du code, et par exemple accéder à des données auxquelles il n'a pas accès, les modifier, les supprimer... voir même consulter d'autres bases de données sur le serveur... bref, un trou de sécurité béant.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/01/2013, 16h23
  2. [MySQL] Problème d'insertion de valeur
    Par yohan0262 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/06/2007, 08h27
  3. Réponses: 4
    Dernier message: 09/06/2006, 07h38
  4. Problème champs calculés et valeur null
    Par markintell dans le forum Access
    Réponses: 18
    Dernier message: 10/01/2006, 18h14
  5. Réponses: 9
    Dernier message: 10/08/2004, 17h13

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