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 to SQL Sum et Min


Sujet :

Linq

  1. #1
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut Linq to SQL Sum et Min
    Bonjour,

    Je dois faire une fonction qui recherche dans une table les congés non traités en paye en me retournant le solde et les dates de début et de fin

    donc j'ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public Shared Function GetReqCP_RTT_EnCours(ByVal LesDatas As ReqEntities, ByVal LeDemandeur As String) As CongePris
            Try
                Return (From LeConge In LesDatas.Conges Where LeConge.Demandeur = LeDemandeur And LeConge.State = "Accepté" Group LeConge By LeConge.Demandeur Into g = Group _
                            Select New CongePris With { _
                                .CP = g.Sum(Function(x) x.NbJoursCP), _
                                .RTT = g.Sum(Function(x) x.NbJoursRTT), _
                                .DteDeb = g.Min(Function(T) T.DateDeb), _
                                .DteFin = g.Max(Function(T) T.DateFin)
                            }).Single
            Catch ex As Exception
                Return Nothing
            End Try
        End Function
    Sur un exemple ou il y a un enregistrment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT   *FROM         Conges
    WHERE     (Demandeur = 'XXX') AND (State = 'Accepté')
    me retourne cet enregistrement , alors que ma requetes Linq ne me retourne rien

    quelqu'un peut me dire mon erreur?
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  2. #2
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim test = (From LeConge In LesDatas.Conges Where LeConge.Demandeur = LeDemandeur Select LeConge).ToList
    ça me retourne des congés

    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim test = (From LeConge In LesDatas.Conges Where LeConge.Demandeur = LeDemandeur And LeConge.State = "Accepté" Select LeConge).ToList
    ne me retourne rien

    Donc le problème n'est pas dans la requête mais dans mon paramètre "ByVal LesDatas As ReqEntities"

    Pourtant dans le WebService qui fait appelle à cette fonction je fais
    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
     <WebMethod()> Public Function GetCongeFrom(ByVal LeParam As String) As Info_Conges
                Dim LesDatasreq As New ReqEntities
                Dim InfoConge As Info_Conges = Nothing
                Dim LesParams() As String = LeParam.Split("#")
                Dim LeHach As String = LesParams(3)
     
                If LeHach = GenerateHash(System.Configuration.ConfigurationManager.AppSettings.Item("ClefHachConge")) Then
                    Dim LeDemandeur As String = LesParams(1)
                    Dim SonSam As String = LesParams(2)
     
     
                        'Recherche des congés validés mais pas traités
                        Dim EnCours As PS_Conges.CongePris = PS_Conges.GetReqCP_RTT_EnCours(LesDatasreq, LeDemandeur)
     
                    End If
                End If
     
                Return InfoConge
            End Function
    le fait de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim LesDatasreq As New ReqEntities
    ne m'instancie pas une nouvelle connexion avec les nouvelles données?
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  3. #3
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut encore plus fort
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim test1 = (From LeConge In LesDatas.Conges Where LeConge.ID = New Guid("595828dd-0ede-48bf-979e-46efefef1e54") Select LeConge).ToList
    me retourne bien mon enregistrement ...

    et encore plus fort si je copie Demandeur et State en dur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim test = (From LeConge In LesDatas.Conges Where LeConge.Demandeur = "XXX" And LeConge.State = "Accepté" Select LeConge).ToList
    ça ne me retourne rien
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  4. #4
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim test1 = (From LeConge In LesDatas.Conges Where LeConge.ID = New Guid("595828dd-0ede-48bf-979e-46efefef1e54") Select LeConge).ToList
                Dim testd As String = test1.First.Demandeur
                Dim tests As String = test1.First.State
                Dim test = (From LeConge In LesDatas.Conges Where LeConge.Demandeur = testd And LeConge.State = tests Select LeConge).ToList
    Là test me retourne bien ce qu'il faut
    pourtant à partir de l'espion j'ai fait copier/Coller (précédent post et ça ne marchait pas ...
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

  5. #5
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut Euréka
    Bref pour finir c'est un problème d'encode de l'accent ...
    quand je récupérer "Accepté" depuis ma base, il était correctement encoder, mais quand il était écrit en dur ... j'avais "Accept@c" J'ai réenregistré mon fichier en le réencodant ... et ça fonctionne.
    Si débugger est l'art d'enlever les bugs ... alors programmer est l'art de les créer

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 14/01/2009, 16h01
  2. [Linq 2 SQL] Problème de modélisation
    Par tomlev dans le forum Accès aux données
    Réponses: 5
    Dernier message: 12/02/2008, 23h29
  3. [Linq to sql] db.add() ?
    Par telynette dans le forum Accès aux données
    Réponses: 2
    Dernier message: 08/02/2008, 19h54
  4. [Linq to SQL] Refresh du dbml
    Par zeavan dans le forum Visual Studio
    Réponses: 5
    Dernier message: 02/01/2008, 10h15
  5. sql sum()
    Par philippe123 dans le forum ASP
    Réponses: 2
    Dernier message: 20/07/2005, 10h49

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