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 :

Comment assigner un GUID à une data row créée ? [Débutant]


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 67
    Points
    67
    Par défaut Comment assigner un GUID à une data row créée ?
    Bonjour Chers Experts,

    Lorsque je crée un nouvel employé, j'aimerai aussi-tôt lui donner un GUID (pour beaucoup de factures, je ne peux pas utiliser de numéro automatiques)

    Le code ci-dessous, que je pense devrait marcher, ne marche pas (Il considère le champ toujours vide). En fait, même quand je renseigne n'importe quel chiffre entre les crochets pour voir s'il modifier une valeur existante, rien ne se passe. J'aurai pu poser un textbox sur la fenêtre, la cacher à l'utilisateur et y renseigner mon GUID, mais je ne trouve pas ça très propre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                    tEMPLOYEBindingSource.AddNew();
                    tEMPLOYEBindingSource.MoveLast();
                    pointageDataSet.T_EMPLOYE[tEMPLOYEBindingSource.Position].OID = Guid.NewGuid().ToString ();
    Une autre option que j'ai serait d'ajouter la ligne via le code, en modifiant la ligne avant de l'ajouter à la datatable, mais le problème ici c'est que l'ajout ne fonctionne pas à cause des contraintes (des champs obligatoires). Je suis obligé de désactiver les contraintes pour pouvoir ajouter la ligne, mais c'est quelque chose que je ne veux pas faire puisqu’alors ça sera la base de données qui signalera à l'utilisateur (seulement au moment de l'enregistrement) qu'il aurait oublié de renseigner d'autres champs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                    pointageDataSet.T_EMPLOYERow NewEmployee = this.pointageDataSet.T_EMPLOYE.NewT_EMPLOYERow();
                    NewEmployee["OID"] = Guid.NewGuid();
     
                    this.pointageDataSet.EnforceConstraints = false; 
                    this.pointageDataSet.T_EMPLOYE.AddT_EMPLOYERow(NewEmployee);
                    this.pointageDataSet.EnforceConstraints = true;
    Pouvez-vous m'aider à comment je peut faite avec l'option 1 ?

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Ca ne marche pas car BindingSource.AddNew() renvoie un DataRowView qui encapsule le nouveau DataRow -préalablement AJOUTE au DataTable du BindingSource ...

    Il suffit ensuite d'assigner au DataRow les valeurs de colonnes appropriées :

    code behind .cs exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
               DataRowView drView = bds.AddNew() as DataRowView ;
     
              drView.Row["ID"] = Guid.NewGuid();
     
              drView.Row["Description"] = "newDesc";
              drView.Row["HostName"] = "new item";
              drView.Row["PortFTP"] = "1500";
    bon code...........

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/09/2006, 13h37
  2. Comment assigner un evenement a une image?
    Par nooblender dans le forum SDL
    Réponses: 10
    Dernier message: 29/08/2006, 11h18
  3. Réponses: 2
    Dernier message: 07/08/2006, 22h36
  4. Réponses: 3
    Dernier message: 16/02/2006, 18h43

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