none
Changer la ParentRow RRS feed

  • Question

  • Bonjour,

    Je dispose d'un dataset avec 3 tables liées par des relations 1 a plusieurs;

    T1
     |_T2
          |_T3
    row3 est enfant de row2 elle meme enfant de row1.
    J'aimerai ajouter Row1Bis a Table 1 qui devienne parent de row2 en lieu et place de Row1.
    j'ai utilise la methode suivante:
    Row1.SetNull(FkColumn)
    row2.SetParentRow(Row1Bis)
    
    Mais cela ne marche pas.
    Comment coderiez vous mon projet ?
    Merci pour votre aide.
    jeudi 2 décembre 2010 23:04

Réponses

  • Bonsoir,

    Je n'ai pas eu le temps de vous adresser un projet et entre temps je crois avoir trouvé la solution :

    Il allait vailder les modification de la nouvelle parentrow avec ParentRow.AcceptChange ou ParentRow.endedit.

    Cordialement

    mardi 14 décembre 2010 20:22

Toutes les réponses

  • Bonjour,

    Dans le designer de votre DataSet, vous devez ajouter les fonctionnalités de "relation" (qui permet de passer d'une table parent à une table enfant).

    Pour cela, double cliquez sur vos relations dans le designer de votre DataSet et sélectionnez "Relation uniquement" ou "Relation et contrainte de clé étrangère" si vous souhaitez bénéficier d'une contrainte de clé étrangère.

    La ligne : "Row1.SetNull(FkColumn)" ne sert à rien.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    samedi 4 décembre 2010 19:44
    Modérateur
  • Bonjour,

    J'ai bien relié mes datatables par des datarelations dans le designer, mais en fait ma question etait différente (mal expliquée je pense).

    je souhaite remplacer l'actuelle datarow, qui sert de parent, par une nouvelle datarow (qui deviendrai le nouveau parent) sans perdre les valeurs de la datarow enfant, elle meme parente d'une datarow de la table 3.

     Public Shared Sub AffectBenefToCommand(ByRef Cmd As DsCommande.T_COMMANDE_CDERow, Optional ByVal BenefID As Guid = Nothing)
        Dim DS As DsCommande
        Dim NewBenef As DsCommande.T_CONTACT_CONTRow
        Dim OldContact As DsCommande.T_CONTACT_CONTRow
        Dim BenefCommandRelation As DataRelation
    
        DS = Cmd.Table.DataSet
        BenefCommandRelation = DS.Relations("FK_T_COMMANDE_CDE_T_CONTACT_CONT")
        OldContact = Cmd.GetParentRow(BenefCommandRelation)
    
        If BenefID = Nothing Then
          NewBenef = AddNewBenef(DS)
        Else
          NewBenef = AddBenef(DS, BenefID)
        End If
    
        DS.EnforceConstraints = False
        DS.T_CONTACT_CONT.RemoveT_CONTACT_CONTRow(OldContact)
        Cmd.SetParentRow(NewBenef, BenefCommandRelation)
       ' Cmd.BEN_ID = NewBenef.CONT_ID
       ' Cmd.T_CONTACT_CONTRow = NewBenef
        ' 
        DS.EnforceConstraints = True
    
      End Sub

    Merci pour votre aide

    • Modifié Fred83 jeudi 9 décembre 2010 23:03 rajout du code
    mercredi 8 décembre 2010 22:00
  • Bonjour,

    Pouvez-vous m'envoyer un projet qui reproduirait votre problème sur gilles.tourreau@pos.fr ? Merci de mettre le lien de cette conversation dans l'e-mail.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    dimanche 12 décembre 2010 13:52
    Modérateur
  • Bonjour Gilles et Fred83,

     

    Si vous trouvez une réponse en privé à ce problème, je vous remercie de la publier aussi dans le thread pour l’usage des autres membres du forum.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    mardi 14 décembre 2010 10:03
  • Bonsoir,

    Je n'ai pas eu le temps de vous adresser un projet et entre temps je crois avoir trouvé la solution :

    Il allait vailder les modification de la nouvelle parentrow avec ParentRow.AcceptChange ou ParentRow.endedit.

    Cordialement

    mardi 14 décembre 2010 20:22