Bonjour à tous,
actuellement j'ai décidé d'apprendre à apprivoiser la gestion des bases de données dans Visual Basic 2010.
Il me semble que je progresse mais j'ai tout de même besoin de vos lumières concernant les DATASET.
J'ai une base de donnée contenant le nom de "Client " ainsi que leurs "identifiants" la "ville" de naissance par exemple.
Je crée un Dataset dans mon projet afin de pouvoir filtrer les personnes nées à Marseille par exemple.
De ce DATASET je souhaite extraire le nom d'une des personnes de la liste de manière aléatoire. Jusqu'ici tout va bien je m'en sors. Ce que je souhaite en revanche c'est qu'en tirant à nouveau une personne cela ne puisse pas être une personne déjà tiré. Pour cela je tente de supprimer la ligne dans mon DataSet qui contient le nom de la personne précédemment tiré mais cela ne fonctionne pas.
Pour plus de compréhension je vous mets un exemple de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 'connection à la base de donnée Access' Try connexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\Users\CSilva2\Documents\Personnel\FIFA Draft generator.accdb" connexion.Open() Catch ex As Exception MessageBox.Show("Impossible d'établir la connection à la base." & ex.Message) End Try
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'Définition de la requête de sélection des Clients' requete = "SELECT ID, Nom, Ville FROM [Final DB]" & vbCrLf & _ "WHERE Ville = 'Marseille'" Dim commande As New System.Data.OleDb.OleDbCommand(requete, connexion) Dim Adaptateur As New System.Data.OleDb.OleDbDataAdapter(commande) 'Chargement de la table de tri des joueurs' Try Adaptateur.Fill(MonDataSet, "[Final DB]") Catch ex As Exception MsgBox("Il n'y a pas de personnes née à " & Ville ) End Try
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 'Tirage de la personne au hasard' Dim Nombre As Integer Dim Personne_Tiré As String Dim Random As New Random() Dim a As Interger, Ligne As Integer Ligne = (MonDataSet.Tables("[Final DB]").Rows.Count) Nombre = Random.Next(0, Ligne - 1) Personne_Tiré = (MonDataSet.Tables("[Final DB]")(a)("Nom")) 'Suppression de la ligne contenant la personne dans le DataSet' For a = 0 To Ligne - 1 If (MonDataSet.Tables("[Final DB]")(a)("Nom")) = Personne_Tiré Then MonDataSet.Tables("[Final DB]").Rows(a).Delete() End If Next
Partager