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

MS SQL Server Discussion :

Problème de date 01/01/1900


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut Problème de date 01/01/1900
    Bonjour à tous,

    Voici mon problème :
    Je réalise un développement sous VB.net avec VS2008.

    J'ai fait un formulaire de saisie avec plusieurs textbox et un bouton Valider qui éxecute une Requête Insert Into avec en Values les différentes TextBox.
    il y a une textbox qui s'intitule Tb_Date_Naiss (qui fait référence à une date de naissance) ; lorsqu'elle n'est pas renseignée et que la requête Insert s'exécute, je retrouve dans la table la valeur 01/01/1900. Or j'aimerais avoir comme valeur Null puisque la TB est vide !

    Que puis-je faire ?
    Merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Je suis ultra-débutant sous VS, et je crois qu'il existe un type NULL dans la classe SqlDbType ...

    @++

  3. #3
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    je confirme, il existe une déclaration de variable Nullable, mais, le fait que ta date soit à 1900-01-01 c'est aussi un moyen de savoir que ta date n'est pas renseignée. Pourquoi t'embêter à vouloir mettre un null, sachant que la date en question est une date référence et non une date utilisée dans ton appli?
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Il existe Convert.DbNull qui fonctionne également.

    Cependant l'absence de données (ou NULL) ou une date à "1900-01-01" ne veut pas dire la même chose sémantiquement parlant.

    Je prends un exemple bête :

    J'insére les données d'une personne.. Comment faire la différence entre une absence d'information de sa part (cette personne ne m'a pas donné sa date de naissance) et une erreur de saisie de données ? (donc la personne avait donné sa date de naissance mais il y a eu une erreur)

    ++

  5. #5
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bonjour,

    Il existe Convert.DbNull qui fonctionne également.

    Cependant l'absence de données (ou NULL) ou une date à "1900-01-01" ne veut pas dire la même chose sémantiquement parlant.

    Je prends un exemple bête :

    J'insére les données d'une personne.. Comment faire la différence entre une absence d'information de sa part (cette personne ne m'a pas donné sa date de naissance) et une erreur de saisie de données ? (donc la personne avait donné sa date de naissance mais il y a eu une erreur)

    ++
    +1, je n'avais pas pensé à ce cas de figures, en générale lorsque j'ai un problème dans la saisie d'un utilisateur je gère un log me disant tout ce qu'il faut et je ré-itère ma procédure, du coup je pense pas au cas d'absence ou d'erreur..
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    Citation Envoyé par mikedavem Voir le message
    Bonjour,

    Il existe Convert.DbNull qui fonctionne également.

    Cependant l'absence de données (ou NULL) ou une date à "1900-01-01" ne veut pas dire la même chose sémantiquement parlant.

    Je prends un exemple bête :

    J'insére les données d'une personne.. Comment faire la différence entre une absence d'information de sa part (cette personne ne m'a pas donné sa date de naissance) et une erreur de saisie de données ? (donc la personne avait donné sa date de naissance mais il y a eu une erreur)

    ++

    Oui c'est vrai en théorie cette date ne doit pas être vide !
    En revanche le problème se pose pour une autre date (inscrit ou non à l'anpe), là il me faut obligatoirement une date à Null pour les personnes n'étant pas inscrites ! j'utilise ensuite cette date pour calculer le nombre de jours inscrits.


    Quelle est la syntaxe pour déclarer une variable en dbnull ?

    j'ai essayé un truc de ce genre :
    dim mavariable
    mavariable = dbnull.value

    mais ça ne fonctionne pas ! j'ai toujours 01/01/1900 ...

    Encore merci !

  7. #7
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonsoir,

    La syntaxe est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    Dim param As SqlParameter = New SqlParameter("@Name", SqlDbType.NVarChar, 20)
    param.Value = DBNull.Value
    ...
    ++

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Par défaut
    Citation Envoyé par Lyche Voir le message
    je confirme, il existe une déclaration de variable Nullable, mais, le fait que ta date soit à 1900-01-01 c'est aussi un moyen de savoir que ta date n'est pas renseignée. Pourquoi t'embêter à vouloir mettre un null, sachant que la date en question est une date référence et non une date utilisée dans ton appli?
    Si hélas la date est ensuite utilisée pour calculer l'âge de la personne !
    On pourrait donc avoir des employés de plus de cent ans ...

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

Discussions similaires

  1. Problème de date dans requête de màj imbriquée
    Par VirginieGE dans le forum Langage SQL
    Réponses: 11
    Dernier message: 20/07/2004, 15h34
  2. problème de date
    Par baboune dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 10/06/2004, 10h52
  3. Problème de date dans MONTHS_BETWEEN
    Par ghostlord79 dans le forum Oracle
    Réponses: 10
    Dernier message: 07/04/2004, 11h21
  4. Problème conversion date
    Par mat.M dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2004, 15h05
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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