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 :

Linq et dataset fortement typé


Sujet :

Windows Forms

  1. #1
    Membre régulier Avatar de stdebordeau
    Homme Profil pro
    Statisticien
    Inscrit en
    Septembre 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 241
    Points : 120
    Points
    120
    Par défaut Linq et dataset fortement typé
    pour éviter tout amalgame (mention resolu sur l'autre post) je relance la discussion ici.

    j'effectue une requête linq sur une des tables de mon dataset (fortement typé bien sur)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim rq = From element as GesBourseDataset.TransacViewRow In GesBourseDataset.TransacView() _
    Where Trim(element.StatuTrsc) = "En Attente" _
    Select element.NomClt, element.CodeClt, element.CodeCpteClt, element.CodeTrsc, element.NomTitre, element.TypeTitre, element.TypeTrsc, element.StatuTrsc, element.DateTrsc, Score = DateDiff(DateInterval.Day, Now, element.DateTrsc) Order By Score Descending
    For Each lgn In rq.ToList
    GesBourseDataset.AttenteT.AddAttenteTRow(lgn.NomClt, lgn.CodeClt, lgn.CodeCpteClt, lgn.CodeTrsc, lgn.NomTitre, lgn.DateTrsc, lgn.TypeTrsc, lgn.StatuTrsc, lgn.Score)
    Next
    à l'exécution du For each, avant même d'en arriver à l'ajout des lignes, il me renvoie l'erreur nullexception comme quoi ma colonne "TypeTrsc" aurait des valeurs DbNull. ce qui du reste est vrai, mais ne doit pas constituer un problème.

    une idée ?
    je serai très heureux d'accéder à des cours, tuto ou autres qui me permettraient enfin de maitriser la bête (dataset typé)

  2. #2
    Membre régulier Avatar de stdebordeau
    Homme Profil pro
    Statisticien
    Inscrit en
    Septembre 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 241
    Points : 120
    Points
    120
    Par défaut
    Bon j'ai fini par trouver après une journée d'acharnement
    pour ceux que ça intéresse, voici le code équivalent qui marche.


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Dim rq = From element In GesBourseDataset.TransacView.AsEnumerable _
    Where (element.StatuTrsc = "En attente") _
    Select NomClt = If(element.IsNomCltNull, Nothing, element.NomClt), element.CodeClt, element.CodeCpteClt, element.CodeTrsc, element.NomTitre, TypeTrsc = If(element.IsTypeTrscNull, Nothing, element.TypeTrsc), StatuTrsc = If(element.IsStatuTrscNull, Nothing, element.StatuTrsc), DateTrsc = If(element.IsDateTrscNull, Nothing, element.DateTrsc), Score = DateDiff(DateInterval.Day, Now, If(element.IsDateTrscNull, Now, element.DateTrsc)) Order By Score Descending
    Dim rwa As GesBourse.GesBourseDataSet.AttenteTRow
    For Each lgn In rq
    rwa = GesBourseDataset.AttenteT.NewAttenteTRow
    rwa.CodeClt = lgn.CodeClt
    If lgn.NomClt = Nothing Then
    rwa.SetNomCltNull()
    Else
    rwa.NomClt = lgn.NomClt
    End If
    rwa.CodeCpteClt = lgn.CodeCpteClt
    rwa.CodeTrsc = lgn.CodeTrsc
    rwa.NomTitre = lgn.NomTitre
    If lgn.TypeTrsc = Nothing Then
    rwa.SetTypeTrscNull()
    Else
    rwa.TypeTrsc = lgn.TypeTrsc
    End If
    If lgn.StatuTrsc = Nothing Then
    rwa.SetStatuTrscNull()
    Else
    rwa.StatuTrsc = lgn.StatuTrsc
    End If
    If lgn.DateTrsc = Nothing Then
    rwa.SetDateTrscNull()
    Else
    rwa.DateTrsc = lgn.DateTrsc
    End If
    rwa.ScoreT1 = lgn.Score
    GesBourseDataset.AttenteT.AddAttenteTRow(rwa)
    End If
    Next

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

Discussions similaires

  1. Methode find sur Dataset fortement typé
    Par stdebordeau dans le forum Windows Forms
    Réponses: 7
    Dernier message: 12/05/2009, 18h41
  2. Utilisation du dataset fortement typé
    Par s.n.a.f.u dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 06/04/2007, 19h39
  3. Pb avec un dataset fortement typé
    Par chris81 dans le forum Windows Forms
    Réponses: 14
    Dernier message: 05/03/2007, 14h29
  4. [ADO.net][VB.net] DataSet fortement typé à la main
    Par RaelRiaK dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/01/2007, 09h48
  5. Réponses: 2
    Dernier message: 19/09/2006, 13h26

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