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 :

[VB.Net][DataView] Comment importer un DataRowView ?


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut [VB.Net][DataView] Comment importer un DataRowView ?
    Bonjour,
    Je n'arrive pas a importer une row d'un dataview vers un autre (structure + données). Je n'arrive qu'a importer la structure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each row As DataRowView In dvOrig
    'condition d'importation
    '...
     Dim rowView As DataRowView = dvDest.AddNew
     rowView = row  <- importation de la structure mais pas des données
     rowView.EndEdit()
    '...
    Next
    pouvez vous m'aider?
    merci

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut Re: [vb.net][dataview] importer une row
    Et en passant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim dvDest As New DataView(dvOrig.ToTable(), _ 
               monNouveauFiltre, _ 
               monExpressionTri, _ 
               monDataViewRowState)
    :

  3. #3
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Désolé pour le titre, j'ai vu que tu avais édité

    [EDIT]
    Je reviens sur ce sujet. En fait je viens de m'apercevoir qu'avec la réponse que tu me donnes, tu sous entends que dvDest est vide a la base.
    Or dvDest contient des enregistrements, je veux juste en 'transférer' de dvOrig vers dvDest, et ensuite supprimé ces enregistrements de dvOrig.

    J'ai déjà la fonction pour supprimer la datarow basé sur une condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            Dim drResult As DataRowView()
            dvOrig.Sort = "QueryGroupId"
     
            For i As Integer = dvOrig.Count - 1 To 0 Step -1
                drResult = dvOrig.FindRows(dvOrig(i).Item("QueryGroupId"))
     
                If Not drResult.Length > 1 Then
                    dvOrig.Item(i).Delete()
                End If
            Next
            dvOrig.Table.AcceptChanges()
    [EDIT 2]

    Bon ca fonctionne comme ca, mais c'est pas jolie jolie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     Dim dt As DataTable = dvDest.ToTable
           Dim drResult As DataRowView()
           dvOrig.Sort = "QueryGroupId"
     
            For i As Integer = dvOrig.Count - 1 To 0 Step -1
                drResult = dvOrig.FindRows(dvOrig(i).Item("QueryGroupId"))
                 If Not drResult.Length > 1 Then
                    Dim r As DataRow = dt.NewRow
                    r("WebId") = dvOrig(i).Item("WebId")
                    r("QueryId") = dvOrig(i).Item("QueryId")
                    r("QueryName") = dvOrig(i).Item("QueryName")
                    r("Attributes") = dvOrig(i).Item("Attributes")
                    r("SortOrder") = dvOrig(i).Item("SortOrder")
                    r("QueryGroupId") = dvOrig(i).Item("QueryGroupId")
                    r("QueryGroupName") = dvOrig(i).Item("QueryGroupName")
                    dt.Rows.Add(r)
                    dvOrig.Item(i).Delete()
                End If
            Next
            dvOrig.Table.AcceptChanges()
            dvDest.Table = dt

  4. #4
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Hop, la solution est trouvée et est beaucoup plus simple que ce que je faisais avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    'filter queries which don't belong to any group
                dvSingleQueries.Table = dtQueries
                dvSingleQueries.RowFilter = "QueryGroupId is NULL"
     
                'filter queries which belong to a group
                dvGroupQueries.Table = dtQueries
                dvGroupQueries.RowFilter = "QueryGroupId is not NULL"
     
                dvGroupQueries.Sort = "QueryGroupId"
                For i As Integer = dvGroupQueries.Count - 1 To 0 Step -1
                    Dim dvTest As New DataView(dtQueries)
                    dvTest.RowFilter = "QuerygroupId = '" & dvGroupQueries(i)("QueryGroupId") & "'"
                    If dvTest.Count = 1 Then dvGroupQueries(i)("QueryGroupId") = DBNull.Value
                Next

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/09/2007, 12h55
  2. Réponses: 2
    Dernier message: 16/10/2006, 11h24
  3. Comment importer une DLL Win 32 en delphi.Net?
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 21/08/2006, 10h33
  4. [VB.Net/Dataview] Comment gérer un filtre sur une colonne de type date ?
    Par silatchom dans le forum Accès aux données
    Réponses: 3
    Dernier message: 07/07/2006, 19h28
  5. [ADO.Net][VB.NET/C#]Comment importer .xls dans DataSet ?
    Par smedini dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/01/2006, 15h59

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