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

ASP.NET Discussion :

asp.net datatable, recupérer la dernière ligne


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut asp.net datatable, recupérer la dernière ligne
    Bonjour,
    J'ai un problème avec une datable que contient un dataset.

    Je veux faire un boucle pour parcourir tout le tableau, cependant je suis obligé de la faire en parcourant tout le tableau sauf la dernière ligne car sinon l'index est out of range, voici la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i = 0; i<ds.Tables[0].Rows.Count - 1  ; i++)
    Le fait que l'index sort du tableau vient du if suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ds.Tables[0].Rows[i]["Release_No"] != ds.Tables[0].Rows[i + 1]["Release_No"])
    En effet quand l'index est sur la dernière ligne, il va le vérifier avec i+1, or i+1 sera en dehors du tableau.

    J'essaie donc de faire un boucle sur tout le tableau et de juste vérifier si l'index est sur la dernière ligne, dans ce cas je récupère seulement la valeur de celle-ci, mais je n'y parviens pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ds.Tables[0].Rows.IndexOf(ds.Tables[0].Rows[i]) == ds.Tables[0].Rows.Count)
    Si quelqu'un a une idée ce serait génial !
    N'hésitez pas à me demander plus d'informations et de code si c'est pas clair.

    Merci de votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Hello,

    ça serait bien de nous donner le code en entier

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    D'accord,
    Voila le 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
      var data = ds.Tables[0].Rows;
                var lastRow = data.Count - 1;
     
                for(int i = 0; i< lastRow; i++)
                {
                    testFirstCum = Convert.ToInt32(data[i]["EDI_Accum_Quantity"]);
     
                    if ( i == lastRow)
                    {
                        if (DBNull.Value.Equals(data[i]))
                        {
     
     
                            quantity = 0;
                        }
                        else
                        {
                            quantity = Convert.ToInt32(data[i]);
     
                            testFirstCum = testFirstCum + quantity;
                            System.Diagnostics.Debug.WriteLine(quantity);
                            System.Diagnostics.Debug.WriteLine(testFirstCum);
                        }
     
                    }
                    else
                    {
                        var col = ds.Tables[0].Columns;
                        var currentRecord = data[i];
                        var nextRecord = data[i + 1];
                        if(currentRecord["Release_No"] != nextRecord["Release_No"])
                        {
                            for (int j = col[2].Ordinal; j < col.Count; j++)
                            {
                                if (DBNull.Value.Equals(data[i][j]))
                                {
     
                                    quantity = 0;
                                }
                                else
                                {
                                    quantity = Convert.ToInt32(data[i][j]);
     
                                    testFirstCum = testFirstCum + quantity;
                                    System.Diagnostics.Debug.WriteLine(quantity);
                                    System.Diagnostics.Debug.WriteLine(testFirstCum);
                                }
                            }
     
                        }
                    }
                }

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Il faut que tu check que i+1 ne dépasse pas le tableau dans un if par exemple.

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2020
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Il faut que tu check que i+1 ne dépasse pas le tableau dans un if par exemple.
    C'est bon j'ai réussi à faire en sorte qu'il ne sorte pas à l'aide du if, merci pour l'aide.

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

Discussions similaires

  1. [Asp.net]Gridview selection d'une ligne
    Par le_ben dans le forum ASP.NET
    Réponses: 1
    Dernier message: 22/04/2010, 17h16
  2. [ASP.NET] - ouverture de documents en ligne stockés en base SQL Server
    Par nono27200 dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 08/10/2008, 16h45
  3. [Asp .Net 1.1] Ajouter une ligne à un datagrid
    Par Jsh dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/03/2008, 15h48
  4. Réponses: 2
    Dernier message: 19/08/2006, 12h47
  5. [vb.net][datatable] recuperer l'index d'une ligne
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 05/07/2005, 15h17

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