Bonjour à tous,
Voilà : j'ai créé un petit soft qui fonctionne avec une base mysql. Ce soft utilisait un DataReader pour la lecture des données. Ce DataReader devait intervenir régulièrement pour lire chaque enregistrement, l'un après l'autre. Du coup, pour améliorer ça, je souhaiterais utiliser un DataSet...
Armé du tuto de Philippe Lasserre et de mes maigres connaissances, je me lance dans la conversion du code... Voici ce que j'ai fait :
Code VB2005 : 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 Private Sub full_race_param_loading() add_status_text("Début du chargements de tous les paramètres de l'épreuve...") 'test connection Try cnx_database = New MySqlConnection cnx_database.ConnectionString = connexion_string cnx_database.Open() cnx_database.Close() Catch ex As Exception add_status_text("Perte de la connection avec le serveur. " & ex.Message) Exit Sub End Try 'ouverture cnx_database = New MySqlConnection cnx_database.ConnectionString = connexion_string cnx_database.Open() ObjetCommand = New MySqlCommand("SELECT * FROM race WHERE race_name = '" & race_lst.SelectedItem.ToString & "'") ObjetDataAdapter = New MySqlDataAdapter(ObjetCommand) ObjetCommand.Connection() = cnx_database ObjetDataAdapter.Fill(ObjetDataSet, "race_parameters") ObjetDataTable = ObjetDataSet.Tables("race_parameters") 'fermeture ObjetConnection = Nothing ObjetCommand = Nothing ObjetDataAdapter = Nothing ObjetDataSet = Nothing ObjetDataTable = Nothing ObjetDataRow = Nothing add_status_text("Chargements de tous les paramètres de l'épreuve réussi!") End Sub Private Sub race_parameters_reader() RowNumber = gate_selected - 1 ObjetDataTable = ObjetDataSet.Tables("race_parameters") 'Lors de l'ouverture de la BD, s'il n'y a aucun enregistrement If RowNumber < 0 Then add_status_text("Plus de données téléchargeables.") Exit Sub End If ' ObjetTable.Rows(Numéro de lignes).Item( Nom de colonne) donne le contenu d'un champ dans une ligne donnée If RowNumber > ObjetDataTable.Rows.Count - 1 Then Exit Sub End If ' ObjetTable.Rows(Numéro de lignes).Item( Nom de colonne) donne le contenu d'un champ dans une ligne donnée gate_latitude = CDbl(ObjetDataTable.Rows(RowNumber).Item(2)) gate_longitude = CDbl(ObjetDataTable.Rows(RowNumber).Item(3)) r_action = CDbl(ObjetDataTable.Rows(RowNumber).Item(4)) cap_consigne = CDbl(ObjetDataTable.Rows(RowNumber).Item(5)) cap_marge = CDbl(ObjetDataTable.Rows(RowNumber).Item(6)) bank_consigne = CDbl(ObjetDataTable.Rows(RowNumber).Item(7)) bank_marge = CDbl(ObjetDataTable.Rows(RowNumber).Item(8)) pitch_consigne = CDbl(ObjetDataTable.Rows(RowNumber).Item(9)) pitch_marge = CDbl(ObjetDataTable.Rows(RowNumber).Item(10)) alt_mini = CDbl(ObjetDataTable.Rows(RowNumber).Item(11)) alt_maxi = CDbl(ObjetDataTable.Rows(RowNumber).Item(12)) speed_maxi = CDbl(ObjetDataTable.Rows(RowNumber).Item(13)) fuel_mini = CDbl(ObjetDataTable.Rows(RowNumber).Item(14)) fuel_maxi = CDbl(ObjetDataTable.Rows(RowNumber).Item(15)) land_allowed = CStr(ObjetDataTable.Rows(RowNumber).Item(16)) comments = CStr(ObjetDataTable.Rows(RowNumber).Item(17)) End Sub
Donc, dans mon soft, sur un évènement, je dois lire l'enregistrement suivant...
Je lui dit donc
Puis sur l'évènement, je fais :
Code VB2005 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 full_race_param_loading() RowNumber = 0 race_parameters_reader()
Bon, je vous rassure, ça c'est ce que j'imagine fonctionner...
Code VB2005 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 RowNumber +=1 race_parameters_reader()
Mais au RowNumber = 0, mon soft ne charge pas les valeurs contenues dans la base de données, et tourne en rond dans le sub race_parameters_reader() sans passer par les deux Exit Sub contenu!!!!
Je comprends pas pourquoi!!!
Merci d'avance de l'aide que vous pourrez m'apporter...
Partager