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

Accès aux données Discussion :

[Linq to Sql] Insertion de quelques champs uniquement


Sujet :

Accès aux données

  1. #1
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut [Linq to Sql] Insertion de quelques champs uniquement
    Bonjour,

    Mon problème concerne Linq To Sql. J'insère un enregistrement avec un code similaire au suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                Contact oContact = new Contact();
                oContact.ContactFirstName = "Martin";
                oContact.ContactName = "Louis";
     
                oDataContext.Contacts.InsertOnSubmit( oContact );
                oDataContext.SubmitChanges();
    Un trigger est déclenché à l'insertion pour mettre à jour un champ date de ma table (avec la date actuelle). Aussi je n'ai pas la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
               oContact.MonChampDate = DateTime.Now;
    Cependant par défaut mon objet oContact a son champ MonChampDate égale à 01/01/0001 00:00:00

    Est-il possible lors de l'insertion de fournir que certains champs et pas tous ? J'ai essayé de mettre la propriété MonChampDate à ReadOnly mais ça n'a pas cet effet...

    Merci.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    En quoi est-ce dérangeant que ton champ ait la valeur 01/01/0001 00:00:00 si ton trigger met à jour cette valeur par la suite ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    sql server n'accepte pas les mêmes date que .Net. 01/01/0001 ne peut pas être inséré dans une table car sql server borne les dates beaucoup plus finement que .Net. Par conséquent, si le trigger est executé après mis à jour de la table --> Erreur.

  4. #4
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    sql server n'accepte pas les mêmes date que .Net. 01/01/0001 ne peut pas être inséré dans une table car sql server borne les dates beaucoup plus finement que .Net. Par conséquent, si le trigger est executé après mis à jour de la table --> Erreur.
    Exact ; mais mon problème est encore différent : mon trigger fonctionne quand je ne lui donne pas de date (échec lorsque je lui en fourni une). En fait je ne souhaite pas qu'on puisse donner la date lors de l'insertion. C'est un souhait...

    En quoi est-ce dérangeant que ton champ ait la valeur 01/01/0001 00:00:00 si ton trigger met à jour cette valeur par la suite ?
    En fait je me suis mal exprimé c'est pas une mise à jour de la date par le trigger mais bien une définition de la date par le trigger.

    Je pourrais bien sur m'arranger et travailler sur le trigger pour que cela fonctionne (mais c'est pas vraiment mon souhait) et je souhaite voir ce qu'on peut faire avec Linq.

    Existe-t-il une solution lors de l'insertion avec Linq ?

    Merci.

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Là, faudrait que je creuse un peu plus opur pouvoir mieux te répondre

  6. #6
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Ok merci. Je vais continuer de regarder également.

Discussions similaires

  1. [Linq to Sql] Insert ou update ? telle est la question ...
    Par Ntotor dans le forum Accès aux données
    Réponses: 5
    Dernier message: 19/11/2008, 15h24
  2. [Linq To SQL] Insertion non voulue
    Par LE NEINDRE dans le forum Accès aux données
    Réponses: 3
    Dernier message: 27/10/2008, 14h51
  3. [Linq to Sql] Insert et delete
    Par cKmel dans le forum Accès aux données
    Réponses: 19
    Dernier message: 23/10/2008, 14h10
  4. Réponses: 4
    Dernier message: 10/04/2007, 12h10
  5. [SQL] Problemes avec des champs uniques
    Par 000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/06/2006, 14h28

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