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?
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?
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.
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
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
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 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
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
Il est sans doute tard pour répondre, mais je te conseil d'utiliser les BindingSource !
"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 ?
Partager