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 :

Comment récupérer une ligne d'un DataSet


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 19
    Par défaut Comment récupérer une ligne d'un DataSet
    Bonjour, lors du chargement de ma form je viens afficher une colonne dans un ListBox de mon DataSet puis lorsque que je clique sur la ListBox je souhaite en récupérer la ligne de mon DataSet afin de la traiter après, comment puis-je faire?

  2. #2
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Je n'ai pas très bien compris ton explication. Mais si tu veux accéder à un champ d'un dataset, faudrait en premier avoir à l'esprit qu'un DataSet est un collection de Tables. Donc pour accéder aux données d'une table, tu peux faire:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myData As Object = UneDataTable.Rows.Item(0).Item("NomColonne")

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 19
    Par défaut
    Citation Envoyé par callo Voir le message
    Je n'ai pas très bien compris ton explication. Mais si tu veux accéder à un champ d'un dataset, faudrait en premier avoir à l'esprit qu'un DataSet est un collection de Tables. Donc pour accéder aux données d'une table, tu peux faire:
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim myData As Object = UneDataTable.Rows.Item(0).Item("NomColonne")
    Oui désolé je voulais dire DataTable ou lieu de DataSet. En fait la cela fonctionne mais uniquement pour la première ligne. En quelque mot voici ce que j'ai fait :

    Chargement de mon logiciel, je charge une colonne d'une Table dans un ListBox nommé ListeClient.

    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
    Private Sub ECLogistique_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     strConn = "provider=microsoft.jet.oledb.4.0;" & "data source= " & Application.StartupPath & "\" & "ECLogistique.mdb;"
     
            strSql = "SELECT Client.*, NomSociete & ' - ' & Numerodeclient as Alias FROM Client ORDER BY NomSociete ASC"
            ObjetConnection = New OleDbConnection
            ObjetConnection.ConnectionString = strConn
            ObjetConnection.Open()
            ObjetCommand = New OleDbCommand(strSql)
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            ObjetCommand.Connection() = ObjetConnection
            ObjetDataAdapter.Fill(ObjetDataSet, "Client")
            TableClient = ObjetDataSet.Tables("Client")
            ListeClient.DisplayMember = "Alias"
            ListeClient.ValueMember = "NumeroDeClient"
            ListeClient.DataSource = ObjetDataSet.Tables("Client")
     
            ObjetConnection.Close()
     
            strSql = "SELECT InformationEntreprise.* FROM InformationEntreprise"
            ObjetConnection = New OleDbConnection
            ObjetConnection.ConnectionString = strConn
            ObjetConnection.Open()
            ObjetCommand = New OleDbCommand(strSql)
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            ObjetCommand.Connection() = ObjetConnection
            ObjetDataAdapter.Fill(ObjetDataSet, "InformationEntreprise")
            TableInformationEntreprise = ObjetDataSet.Tables("InformationEntreprise")
     
            ObjetConnection.Close()
     
            strSql = "SELECT Affaires.* FROM Affaires"
            ObjetConnection = New OleDbConnection
            ObjetConnection.ConnectionString = strConn
            ObjetConnection.Open()
            ObjetCommand = New OleDbCommand(strSql)
            ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
            ObjetCommand.Connection() = ObjetConnection
            ObjetDataAdapter.Fill(ObjetDataSet, "Affaires")
            TableAffaires = ObjetDataSet.Tables("Affaires")
            ListeAffaireClient.DataSource = ObjetDataSet.Tables("Affaires")
     
            ObjetConnection.Close()
     
    End Sub
    Ensuite a chaque fois que je clique sur ma ListBox ListeClient afin de sélectionner un autre client, j'affiche dans des TestBox des donnée sur les client de ma Table. Tous cela fonctionne jusqu'à présent. En voici 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
    Private Sub ListeClient_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListeClient.SelectedIndexChanged
            If ListeClient.SelectedIndex <> -1 Then
                TextBox1.Text = CType(ListeClient.SelectedValue, String)
            End If
     
            ListeAffaireClient.DisplayMember = TextBox1.Text
     
            NumeroClientCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("NumeroDeClient")
            NomSocieteCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("NomSociete")
            SIRETCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("NumeroDeSIRENSIRET")
            AdresseCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("Adresse")
            CodePostalCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("CodePostal")
            VilleCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("Ville")
            TelephoneCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("Telephone")
            FaxCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("Fax")
            NomContactCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("NomDuContact")
            TelephoneContactCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("TelephoneDuContact")
            EmailContactCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("EmailDuClient")
            BanqueCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("Banque")
            CodeEtablissementCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("CodeEtablissement")
            CodeGuichetCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("CodeGuichet")
            NumeroCompteCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("NumeroDeCompte")
            CleRIBCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("CleRIB")
            IBAN0CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN0")
            IBAN1CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN1")
            IBAN2CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN2")
            IBAN3CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN3")
            IBAN4CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN4")
            IBAN5CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN5")
            IBAN6CC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("IBAN6")
            CodeBICCC.Text = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)("CodeBIC")
     
        End Sub
    Une fois cela fait je souhaite donc pouvoir modifier les données concernant les clients et la c'est le problème car seule la première ligne (ObjetDataRow("NumeroDeClient") = NumeroClientCC.Text) est prise en compte et donc seule cette première ligne est inscrite dans ma Table mais pas la suite. Voici le code que j'ai, ais-je fait une erreur? Probablement que oui mais laquelle?

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Private Sub SauvegarderCC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SauvegarderCC.Click
     
            StatusParticulierCC.Enabled = False
            StatusProfessionnelCC.Enabled = False
            NumeroClientCC.Enabled = False
            NomSocieteCC.Enabled = False
            SIRETCC.Enabled = False
            AdresseCC.Enabled = False
            CodePostalCC.Enabled = False
            VilleCC.Enabled = False
            TelephoneCC.Enabled = False
            FaxCC.Enabled = False
            NomContactCC.Enabled = False
            TelephoneContactCC.Enabled = False
            EmailContactCC.Enabled = False
            BanqueCC.Enabled = False
            CodeEtablissementCC.Enabled = False
            CodeGuichetCC.Enabled = False
            NumeroCompteCC.Enabled = False
            CleRIBCC.Enabled = False
            IBAN0CC.Enabled = False
            IBAN1CC.Enabled = False
            IBAN2CC.Enabled = False
            IBAN3CC.Enabled = False
            IBAN4CC.Enabled = False
            IBAN5CC.Enabled = False
            IBAN6CC.Enabled = False
            CodeBICCC.Enabled = False
            SauvegarderCC.Enabled = False
            ModifierCompteClient.Enabled = True
     
            Try
                'ObjetDataRow = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedValue)
                ObjetDataRow = ObjetDataSet.Tables("Client").Rows(ListeClient.SelectedIndex)
     
                'ObjetDataRow("Professionnel") = 
                ObjetDataRow("NumeroDeClient") = NumeroClientCC.Text
                ObjetDataRow("NomSociete") = NomSocieteCC.Text
                ObjetDataRow("NumeroDeSIRENSIRET") = SIRETCC.Text
                ObjetDataRow("Adresse") = AdresseCC.Text
                ObjetDataRow("CodePostal") = CodePostalCC.Text
                ObjetDataRow("Ville") = VilleCC.Text
                ObjetDataRow("Telephone") = TelephoneCC.Text
                ObjetDataRow("Fax") = FaxCC.Text
                ObjetDataRow("NomDuContact") = NomContactCC.Text
                ObjetDataRow("EmailDuClient") = EmailContactCC.Text
                ObjetDataRow("TelephoneDuContact") = TelephoneContactCC.Text
                ObjetDataRow("Banque") = BanqueCC.Text
                ObjetDataRow("CodeEtablissement") = CodeEtablissementCC.Text
                ObjetDataRow("CodeGuichet") = CodeGuichetCC.Text
                ObjetDataRow("NumeroDeCompte") = NumeroCompteCC.Text
                ObjetDataRow("CleRIB") = CleRIBCC.Text
                ObjetDataRow("IBAN0") = IBAN0CC.Text
                ObjetDataRow("IBAN1") = IBAN1CC.Text
                ObjetDataRow("IBAN2") = IBAN2CC.Text
                ObjetDataRow("IBAN3") = IBAN3CC.Text
                ObjetDataRow("IBAN4") = IBAN4CC.Text
                ObjetDataRow("IBAN5") = IBAN5CC.Text
                ObjetDataRow("IBAN6") = IBAN6CC.Text
                ObjetDataRow("CodeBIC") = CodeBICCC.Text
     
                ObjetConnection.Open()
     
                ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
                ObjetCommandBuilder.GetUpdateCommand()
                ObjetDataAdapter.Update(ObjetDataSet, "Client")
                ObjetConnection.Close()
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
            ObjetDataAdapter.Fill(ObjetDataSet, "Client")
            TableClient = ObjetDataSet.Tables("Client")
     
        End Sub

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 8
    Par défaut
    Il est sans doute tard pour répondre, mais je te conseil d'utiliser les BindingSource !

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    "est prise en compte et donc seule cette première ligne est inscrite dans ma Table mais pas la suite"

    Que veux tu dire par là ?
    - Qu'une seule colonne est mis à jour ?
    - Que dans tes variables il n'y a qu'une valeurs qui est récupérer ?
    - Que la mise à jour ne fonctionne que pour le premier client ?

Discussions similaires

  1. Comment récupérer une ligne de DataModel
    Par natalie75 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 17/04/2015, 12h38
  2. Comment récupérer la ligne qui a causé une erreur ?
    Par schnee dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 17/09/2014, 16h01
  3. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  4. [HTML] comment récupérer une ligne d'un tableau avec HTML?
    Par jaafarerraji dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/10/2007, 00h21
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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