J'ai un problème avec le dernier morceau de code de mon projet scolaire. Je dois sélectionner plusieurs valeurs pour un identifiant donné dans la colonne "actuelewerktuigselectie". Ces valeurs doivent ensuite être insérées dans des variables pour une utilisation ultérieure dans le projet.
Je n'obtiens que la valeur du premier identifiant. Voir ci-dessous mon code actuel. Que puis-je changer pour corriger mon code et obtenir toutes les valeurs ?
Dim sCnnStr As String = My.Settings.sCnnStr Dim oCnn As New MySqlConnection(sCnnStr) Dim sSql As String = "select pfProfielfreesnummer, pfLopendemeters from actuelewerktuigselectie where (awsId=@1 OR awsId=@2 OR awsId=@3 OR awsId=@4 OR awsId=@5 OR awsId=@6 OR awsId=@7 OR awsId=@8)" Dim oCmd As MySqlCommand = New MySqlCommand(sSql, oCnn) oCmd.Parameters.AddWithValue("@1", 5) oCmd.Parameters.AddWithValue("@2", 6) oCmd.Parameters.AddWithValue("@3", 7) oCmd.Parameters.AddWithValue("@4", 8) oCmd.Parameters.AddWithValue("@5", 17) oCmd.Parameters.AddWithValue("@6", 18) oCmd.Parameters.AddWithValue("@7", 19) oCmd.Parameters.AddWithValue("@8", 20) oCnn.Open() Dim myReader As MySqlDataReader myReader = oCmd.ExecuteReader() While (myReader.Read()) werktuignummer1 = (myReader.GetString(0)) LopendeMeters1 = (myReader.GetDouble(1)) werktuignummer2 = (myReader.GetString(2)) LopendeMeters2 = (myReader.GetDouble(3)) werktuignummer3 = (myReader.GetString(4)) LopendeMeters3 = (myReader.GetDouble(5)) werktuignummer4 = (myReader.GetString(6)) LopendeMeters4 = (myReader.GetDouble(7)) werktuignummer5 = (myReader.GetString(8)) LopendeMeters5 = (myReader.GetDouble(9)) werktuignummer6 = (myReader.GetString(10)) LopendeMeters6 = (myReader.GetDouble(11)) werktuignummer7 = (myReader.GetString(12)) LopendeMeters7 = (myReader.GetDouble(13)) werktuignummer8 = (myReader.GetString(14)) LopendeMeters8 = (myReader.GetDouble(15)) End While myReader.Close() oCnn.Close()
Tout ce code, je l'ai appris moi-même en quelques mois car je n'ai pas suivi les cours dont j'avais besoin pour mener à bien ce projet, mais je l'ai simplement suivi et j'ai appris les bases de vb.net et MySql.
Mes colonnes et variables sont en néerlandais.
Vraisemblablement, vous avez un nombre inconnu de résultats, éventuellement jusqu'à 8 résultats. Il est donc préférable d'utiliser quelque chose pour stocker les résultats, dont le stockage peut être étendu selon les besoins pour accueillir autant de résultats renvoyés par la requête : vous pouvez utiliser une Liste pour cela, à condition de créer quelque chose qui puisse contenir tout. renvoyé pour chaque ligne d'une requête de liste - il peut s'agir d'une classe avec des propriétés contenant chaque variable. Il est probablement plus facile de regarder le code que j'ai suggéré que de l'expliquer :
La fonction GetData (vous devez lui donner un nom descriptif) renverra une liste que vous pourrez parcourir pour obtenir chaque résultat individuel, comme
Je le ferai
AddWithValue
更改为Add
car le premier peut causer des problèmes inattendus. J'ai modifié les noms des paramètres pour qu'ils commencent par une lettre afin d'éviter d'autres problèmes inattendus.Utilisez des déclarations a> pour garantir que les éléments qui doivent gérer des ressources non gérées sont pris en charge.