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

ASP.NET Discussion :

[2.0] Requête paramétrée avec Access et champ Date


Sujet :

ASP.NET

  1. #1
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut [2.0] Requête paramétrée avec Access et champ Date
    Salut tlm,
    J'aurais voulu savoir si quelqu'un avait déjà utilisé avec des champs date à null (en INSERT)

    Quand je mets :
    paramDtFibroBronch.IsNullable = true;
    Il me dit que :
    Error 1 Property or indexer 'System.Data.IDataParameter.IsNullable' cannot be assigned to -- it is read only
    Bon, j'essaie de faire sans et je mets :
    if (DtFibroBronch == null) paramDtFibroBronch.Value =DBNull.Value;
    Il me dit "unreachable code detected sur le mot souligné...

    Merci si vous avez un retour d'expérience, car là je sèche complètement...

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Bonjour,

    Comme tu l'as remarqué la propriété IsNullable n'est pas modifiable.
    En ce qui concerne ton dernier bout de code, cela ne métonne pas qu'il soit unreachable parce qu'un objet de type DateTime ne peut pas être égal à nul.

    Pour qu'un DateTime puisse être nul, déclare le de la manière suivante :

  3. #3
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Citation Envoyé par Paul Musso Voir le message
    Pour qu'un DateTime puisse être nul, déclare le de la manière suivante :
    Heu, j'ai pas compris ton bout de code

  4. #4
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Et j'ai l'impression que c'est limité en nombre de champs...
    J'ai une requête INSERT d'une cinquante de champs et il se mélange les pinceaux...

  5. #5
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Ce que te dit Paul, c'est qu'une date etant un objet VALEUR, une date ne peut pas etre nulle, a moins d'etre definie comme nullable, avec un ? apres, ou comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nullable<DateTime> date;

    regarde ici pour plus d'infos:
    http://dotnet.developpez.com/articles/types-nullables/

    Citation Envoyé par quanou Voir le message
    J'ai une requête INSERT d'une cinquante de champs et il se mélange les pinceaux...


    Verifie d'abord que ce ne soit pas toi qui t'emmeles les pinceaux

    En aparté, de facon generale, ca me semble une assez mauvaise idee dávoir un insert a vec 50 champs, ca sent la base pas trop trop normalisee
    (ca se justifie des fois...mais seulement des fois )

  6. #6
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Points : 443
    Points
    443
    Par défaut
    Dernière précision, la synthaxe ? ou Nullable<T> pour les types nullables fonctionnent uniquement à partir du framework 2.0. Cela a ti-il résolu ton problème ?

  7. #7
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Merci les gars, je regarde ça et je vous tiens au jus
    Peut-être que c'est moi qui me mélange les pinceaux en effet, et ce serait pas la première fois
    Mais, là, je vais à petits pas, par élimination, pour isoler le problème. Et j'ai vraiment l'impression qu'il se mélange un peu les pinceaux car les champs de destination ne prennent pas la bonne valeur. Pourtant le paramètre est bon...
    Je revérifie là
    En fait, disons que c'est un patient avec une tripotée d'examen médicaux. D'où une table avec une tripotée de champs. Je peux diviser en plusieurs tables, mais là, ce serait plus une limite technique qui l'impose, non ?

  8. #8
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par quanou Voir le message
    En fait, disons que c'est un patient avec une tripotée d'examen médicaux. D'où une table avec une tripotée de champs. Je peux diviser en plusieurs tables, mais là, ce serait plus une limite technique qui l'impose, non ?
    Si tu as n examens dispo, je ferais plutot une table patient -> donnees du patient, une table Examen avec une FK sur patient et eventuellement (si plusieurs resultats/examen), une table Elements examens avec les n elements de l'examen avec une fk sur la pk de Examen...

    Techniquement, ca te permettrait surtout de ne pas avoir a ajouter n nouveaux champs dans la bdd quand tu crees un nouvel examen ou quún examen contient un nouveau type de resultat.

    ex, si prise de sang, tu vas avoir des prises de sang avec glycemie, dosage des glob. blancs...si demain ton soft commence a gerer les resultats de serologie, c'est 8000 colonnes qu'elle va avoir, ta table

  9. #9
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Bon les gars, ça marche !!! Merci !!!
    Nullable<DateTime> dtFibroBronch = null;
    Alors, quand je disais que le machin se mélangeait les pinceaux, vous n'êtes pas obligés de me croire mais ce bloc ci-dessous par exemple doit être EXACTEMENT dans l'ordre de la requête.
    IDataParameter paramDtFibroBronch = maCommande.CreateParameter();
    paramDtFibroBronch.ParameterName = "@dtFibroBronch";
    paramDtFibroBronch.DbType = DbType.Date;
    paramDtFibroBronch.Direction = ParameterDirection.Input;
    if (DtFibroBronch == null) paramDtFibroBronch.Value = DBNull.Value;
    else paramDtFibroBronch.Value = DtFibroBronch;
    maCommande.Parameters.Add(paramDtFibroBronch);
    Si je le mets par exemple en premier, j'avais des erreur du genre "Type pas bon". . Forcément, une date ne va pas dans un int...
    Je sais, je sais, vous me croyez pas. Je le vois d'ici

    Pour ce qui est de la conception, en fait, c'est un bilan initial, donc les nombreux examens sont en "one-shot". Mais effectivement, je peux déjà les séparer dans une autre table (d'une vingtaine de champs...)
    Merci encore pour votre coup de main

  10. #10
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    pour la conception, tu peux faire trois tables:

    Patient
    TypeExamen : chaque type d'exam dispo (pk + description)
    Examen : les resultats des types d'exam par exam : (pk + fk Patient + fk TypeExamen + resultat)

    ca coutera + cher a la mise a jour (a moins de travailler examen/examen), a tester...en tout cas, ca fera gagner du temps de maintenance

  11. #11
    Membre actif Avatar de quanou
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 311
    Points : 247
    Points
    247
    Par défaut
    Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2009, 16h19
  2. [2.0] Requête paramétrée avec Access, Output
    Par quanou dans le forum ASP.NET
    Réponses: 0
    Dernier message: 06/11/2008, 12h44
  3. Requête paramétré avec Access
    Par cyrillece dans le forum C#
    Réponses: 4
    Dernier message: 17/12/2007, 08h37
  4. [WD8] Requêtes paramétrées avec accès odbc direct
    Par devalender dans le forum WinDev
    Réponses: 5
    Dernier message: 20/12/2005, 12h25
  5. Déterminer une requête paramétrée avec LIKE
    Par priest69 dans le forum Access
    Réponses: 4
    Dernier message: 24/10/2005, 19h29

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