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

C# Discussion :

Lecture dans une BD avec linq to SQL


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Par défaut Lecture dans une BD avec linq to SQL
    Bonjour,

    J'essaie de lire dans un BD avec Linq to SQL, mon programme me lance constamment une exception : "System.ArgumentOutOfRangeException"

    L'identifiant est composé de type et code_id exemple : anatomy + 120

    Donc dans ce cas, je veux chercher dans la bd un enregistrement id(anatomy + 120)
    Plus un enregistrement id(anatomy + 12)
    Plus un enregistrement id(anatomy + 1)

    Ce code ci-dessous doit faire ceci, mais fais crash l’application. J'ai essayé d'autre boucle, ... Sans succès.

    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
     
            internal List<BeanCode> getCodes(string type, string code_id)
            {
                List<BeanCode> listeCode = new List<BeanCode>();
     
                var code = from e in db.codeImage where e.Type == type && e.Code == code_id select e;
                while (code.Any()) 
                {
                    BeanCode ci = new BeanCode()
                    {
                        Code = code.FirstOrDefault().Code,
                        Type = code.FirstOrDefault().Type,
                        Description = code.FirstOrDefault().Description
                    };
     
                    int i = ci.Code.Length-1;
                    if (i > 0)
                        code = from e in db.codeImage where e.Type == type && e.Code == code_id.Substring(0, i) select e;
                    else
                        break;
     
                    listeCode.Add(ci);
                }
     
                return listeCode;
            }
    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Quelle est la ligne qui lance l'exception ? Si tu as un message d'erreur un peu plus précis, et éventuellement une InnerException, merci de l'indiquer en entier.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Par défaut
    Nom : exceptionVS.png
Affichages : 133
Taille : 68,1 Ko

    Voici une capture de l'exception.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Merci. A vue de nez, je dirais que ta variable code vaut null auquel cas tu ne peux pas utiliser Any directement. Il faut vérifier cette condition en plus :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    if (code != null && code.Any())
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 95
    Par défaut
    Non j'ai ajouter code != null dans le if devant le any() mais j'ai encore la même exception

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ok, dans ton if (i > 0), tu utilises Substring. As-tu vérifié que la valeur de i soit toujours comprise dans la bonne plage par rapport à la longueur de code_id ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/01/2016, 14h33
  2. Réponses: 0
    Dernier message: 24/12/2012, 11h57
  3. Réponses: 4
    Dernier message: 29/08/2011, 10h58
  4. Trier une liste avec LINQ to SQL
    Par anthride dans le forum Linq
    Réponses: 2
    Dernier message: 12/02/2010, 10h40
  5. Réponses: 2
    Dernier message: 27/04/2009, 23h01

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