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

VB.NET Discussion :

supprimer une ligne d'une datatable


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut supprimer une ligne d'une datatable
    Bonjour,

    Voulez-vous m'aider à trouver une solution ?
    Je voudrais supprimer une ligne de la datatable objTable, sachant que je n'ai que "toto" et "tata" comme infos (et je sais que "toto" et "tata" sont dans objTable)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Requete As String = " SELECT BQE_BIC, BQE_NOM FROM BANQUE ;"
     
    Dim objTable As DataTable = New DataTable
    objTable = RecupererDonneesBase(Requete, ListeBDD.BQUE)
    Dim row As Data.DataRow
    row = objTable.NewRow()
    row("BQE_BIC") = "toto"
    row("BQE_NOM") = "tata"
    objTable.Rows.Remove(row)
    C'est la dernière ligne qui plante.

    Merci pour votre aide.
    Aurore

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    j'ai pas bien compris... tu veux supprimer la ligne pour laquelle BQE_BIC = "toto" et BQE_NOM = "tata" ?

    Par ce que dans le code que tu as montré, tu crées une nouvelle ligne dans laquelle tu initialises ces 2 colonnes, et tu essaies de la supprimer alors que tu ne l'a pas ajoutée au DataTable (d'où l'erreur). La solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rows As DataRow()
    rows = objTable.Select("BQE_BIC = 'toto' AND BQE_NOM = 'tata'")
    For Each row As DataRow In rows
        objTable.Rows.Remove(row)
    Next
    (je fais un For Each parce que Select peut éventuellement renvoyer plusieurs lignes)

  3. #3
    Membre averti Avatar de Faladin
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 333
    Points : 305
    Points
    305
    Par défaut
    Pourquoi tu crées une nouvelle ligne avec "toto" et "tata" dedans?

    Tu veux chercher "toto" ou "tata" et supprimer la ligne correspondante?
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods


    JP

    Pour commencer en VB.Net: PLASSERRE!

    ou traducteur-sms.com

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    euuuh...


    je suis pas sur de bien voir...

    Tu veux ajouter une ligne dans ta datatable, que tu essaies de supprimer apres ...

    d'abord, si je me rappelle bien, tu dois faire a un moment...

    Mais de toute facon, ca ne supprimera pas de donnees dans ta datatable
    c'est plutot qq chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " DELETE FROM BANQUE WHERE BQE_BIC='toto' and BQE_NOM='tata' "
    (en requete parametree, et avec executenonquery, evidemment)


    Ou alors, j;ai loupe un episode...

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    ca a inspire du monde

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse !

    En fait j'aimerais supprimer une ligne dans le DataTable nommé objTable



    Et pour supprimer la ligne je n'ai que les infos "toto" et "tata"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci pour vos réponse.
    Je m'exprime mieux :


    J'ai la DataTable suivante :

    BQE_BIC | BQE_NOM
    =======|=======
    "titi" |"taty"
    "totu" |"tetu"
    "tete" |"tuto"
    "toto" |"tata"
    "tutu" |"tyty"

    Je veux supprimer une ligne sachant que je veux supprimer celle où :
    - BQE_BIC = "tata"
    - BQE_NOM = "toto"

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    c'est bien ce qu'il me semblait...
    variante de mon premier code (en supposant que ces 2 colonnes soient définies comme clés primaires) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim row As DataRow = objTable.Find(new Object() {"tata", "toto"})
    objTable.Rows.Remove(row)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Dim row As DataRow = objTable.Find(new Object() {"tata", "toto"})
    objTable.Rows.Remove(row)

    Chez moi j'ai pas de Find possible...


    J'ai fais ça :
    Dim row As Data.DataRow
    row = objTable.NewRow()
    row("BQE_BIC") = "tata"
    row("BQE_NOM") = "toto"


    Dim row2 As DataRow = objTableTempBIC8ET11.Rows.Find(row)
    objTableTempBIC8ET11.Rows.Remove(row2)
    Mais ça marche pas non plus
    Ça plante à l'avant dernière ligne

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    J'avais précisé "(en supposant que ces 2 colonnes soient définies comme clés primaires)"... si ce n'est pas le cas, ça ne marche pas. Mais mon premier code devrait fonctionner
    Quand tu dis "ça plante", ce serait bien de dire quelle est l'erreur, parce que sinon on aura du mal à t'aider... en l'occurrence je suppose qu'il s'agit d'une MissingPrimaryKeyException (vu que tu crées ta DataTable sans préciser de clé primaire)

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Et comment on fait définir les 2 colonnes en clé primaire.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objTable.PrimaryKey = New DataColumn() {objTable.Columns("BQE_BIC"), objTable.Columns("BQE_NOM")}
    Il faudrait peut-être que tu te formes un minimum, sinon la série des questions n'est pas près de s'arrêter
    Je te suggère de lire les tutoriels suivants :
    http://dotnet.developpez.com/articles/ado1/vbnet/
    http://dotnet.developpez.com/articles/ado2/vbnet/

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour vos réponses.

    Voici ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim Requete As String = " SELECT BQE_BIC, BQE_NOM FROM BANQUE ;"
     
    Dim objTable As DataTable = New DataTable
    maDataTable = RecupererDonneesBase(Requete, ListeBDD.BQUE)
     
    Dim foundRows As DataRow()
    foundRows = maDataTable.Select("BQE_BIC = '" & (maDataTable.Rows(int11).Item("BQE_BIC")).ToString & "'", "BQE_NOM")
     
    'je sais que foundRows ne retourne qu'un enregistrement
    maDataTable.Rows.Remove(foundRows(0))

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/01/2015, 18h30
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. [XL-2010] supprimer des lignes entre une constante et une variable
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/01/2012, 16h46
  4. Supprimer les lignes d'une table dans une autre table
    Par blastmind dans le forum SAS Base
    Réponses: 2
    Dernier message: 28/04/2009, 14h17
  5. supprimer une ligne et une colonne d'une matrice
    Par nessing dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/08/2007, 15h42

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