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

Linq Discussion :

LINQ et opération sur des colonnes de Datarow


Sujet :

Linq

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 8
    Points
    8
    Par défaut LINQ et opération sur des colonnes de Datarow
    Bonjour à tous,

    Je suis un novice sur LINQ et je me pose une question de faisabilité avec celui ci.

    En fait j'aimerais pouvoir sélectionner dans une Datatable une liste de lignes, et influer sur la valeur contenue dans une des colonnes en même temps.
    Petit Exemple

    Code:
    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
     
    Dim dtTable1 As DataTable = New DataTable
     
    With dtTable1
        .Columns.Add(New DataColumn("ID"))
       .Columns.Add(New DataColumn("VAL"))
    End With
     
    Dim drRow As DataRow
     
    For i As Long = 0 To 100
        drRow = dtTable1.NewRow
        drRow("ID") = i
        drRow("VAL") = i + 1
    Next
     
    Dim oQuery As System.Collections.Generic.IEnumerable(Of DataRow) = From myRow As DataRow In dtTable1 Select myRow
    Ma question ici serait, comment modifier oQuery pour avoir un enumérable de Datarow, ayant pour colonnes : dans ID la même valeur que ds la table dtTable1 et dans VAL la valeur de VAL +10

    en SQL ceci est tres simple mais j'ai peut etre trop tendance à comparer SQL et LINQ du fait de leur similitude de syntaxe

    Merci

  2. #2
    Membre chevronné
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Points : 2 209
    Points
    2 209
    Par défaut
    Bonjour,

    Déjà dans ta boucle il faut ajouter une ligne pour que celles que tu crées soient rajoutées à ton datatable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For i As Integer = 0 to 99
        drRow = dtTable1.NewRow()
        drRow("ID") = i
        drRow("Val") = i + 1
    Next i
    Ensuite tu dois passer par la création d'un type anonyme lors de la requête (donc perte du typage en IEnumerable(Of DataRow)). Ceci tu peux le faire de deux façons (question de choix de syntaxe ^^).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim oQuery = From myRow As DataRow In dtTable1 Select New With {.ID = myRow("ID"), .VAL = CInt(myRow("VAL")) + 10}
    'Ou
    Dim query = dtTable1.AsEnumerable().Select(Function(dr As DataRow) New With {.ID = dr("ID"), .VAL = CInt(dr("VAL")) + 10})
    Je mets les deux syntaxes car j'avoue que je n'utilise quasiment Linq que dans la 2ème écriture (je ne sais même pas s'il y a des différences ).

    En espérant avoir été utile !

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Salut,

    Oui effectivement, il faut rajouter les Datarow dans la table dans le premier bout de code, c'est ca de faire des Exemple a main levée Désolé

    Sinon oui, tu as bien répondu a ma question, je pensais bien être obligé de passer par un type anonyme mais je n'était pas sur que ce soit la seule solution

    Merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/06/2012, 12h30
  2. Opérations sur des dates
    Par loreleï85 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2006, 18h01
  3. opération sur des champs déjà manipulés
    Par fred23195 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 23/08/2006, 17h16
  4. [Dates] Question pour opérations sur des heures
    Par Sangdrax1604 dans le forum Langage
    Réponses: 7
    Dernier message: 23/08/2006, 12h07
  5. Opération sur des heures dans Excel
    Par mirascheat dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2005, 11h34

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