Cours VB.NET – Exécution d’une procédure stockée, tutoriel & guide de travaux pratiques en pdf.
UTILISATION DE DATAREADER
Vous pouvez utiliser le DataReader ADO.NET pour extraire d’une base de données un flux de données en lecture seule et avant uniquement. Les résultats sont retournés pendant que la requête s’exécute et stockés dans la mémoire tampon de réseau sur le client jusqu’à ce que vous les demandiez au moyen de la méthode Read de DataReader. L’utilisation de DataReader peut augmenter les performances de l’application d’abord en extrayant les données dès qu’elles sont disponibles, plutôt que d’attendre que tous les résultats de la requête aient été retournés, et ensuite en ne stockant (par défaut) qu’une seule ligne à la fois dans la mémoire, ce qui réduit la charge du système.
Après avoir créé une instance de l’objet Command, vous créez un DataReader en appelant Command.ExecuteReader pour extraire les lignes d’une source de données, comme le montre l’exemple suivant.
Dim myReader As SqlDataReader = myCommand.ExecuteReader()
Vous utilisez la méthode Read de l’objet DataReader pour obtenir une ligne des résultats de la requête. Vous pouvez accéder à chaque colonne de la ligne retournée en passant le nom ou la référence ordinale de la colonne au DataReader. Cependant, pour une meilleure performance, le DataReader fournit une série de méthodes qui vous permettent d’accéder aux valeurs de colonnes dans leurs types de données natifs (GetDateTime, GetDouble, GetGuid, GetInt32, etc.).
Remarque La version 1.1 du .NET Framework inclut une propriété supplémentaire pour le DataReader, HasRows, laquelle vous permet de déterminer si le DataReader a retourné des résultats avant de le lire.
L’exemple de code suivant itère dans un objet DataReader et retourne une colonne à partir de chaque ligne.
Module Module1
Sub Main()
Dim cn As New OleDb.OleDbConnection()
cn.ConnectionString = »Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\bd.mdb; »
cn.Open()
Dim CMD As New OleDb.OleDbCommand(« select * from Article », cn)
Dim RDR As OleDb.OleDbDataReader = CMD.ExecuteReader()
While (RDR.Read())
Console.WriteLine(RDR.GetString(1))
End While
Console.ReadLine()
RDR.Close()
cn.Close()
End Sub
End Modu
Le DataReader fournit un flux de données non mis en tampon qui permet la logique procédurale de traiter efficacement les résultats provenant d’une source de données de façon séquentielle. Le DataReader se révèle être un bon choix lors de l’extraction de grandes quantités de données car celles-ci ne sont pas mises en cache dans la mémoire.
Fermeture du DataReader
Vous devez toujours appeler la méthode Close lorsque vous avez fini d’utiliser l’objet DataReader.
Si Command contient des paramètres de sortie ou des valeurs de retour, ils ne seront pas disponibles avant la fermeture du DataReader.
Notez que pendant l’ouverture d’un DataReader, Connection est utilisé en mode exclusif par ce DataReader. Vous ne pourrez pas exécuter les commandes pour Connection, y compris la création d’un autre DataReader, jusqu’à la fermeture du DataReader d’origine.
Exécution d’une procédure stockée
Les procédures stockées offrent de nombreux avantages dans les applications pilotées par des données. En utilisant les procédures stockées, les opérations de base de données peuvent être encapsulées dans une commande unique, optimisées pour une meilleure performance et améliorées grâce à une sécurité supplémentaire. Tandis qu’une procédure stockée peut être appelée en passant simplement son nom suivi des arguments de paramètre comme instruction SQL, l’utilisation de la collection Parameters de l’objet Command ADO.NET vous permet de définir plus explicitement les paramètres de procédure stockée et d’accéder aux paramètres de sortie et aux valeurs de retour.
Pour appeler une procédure stockée, affectez StoredProcedure au CommandType de l’objet Command. Une fois StoredProcedure affecté CommandType, vous pouvez utiliser la collection Parameters pour définir les paramètres, comme dans l’exemple suivant.
Utilisation des paramètres
Un objet Parameter peut être créé à l’aide du constructeur Parameter ou en appelant la méthode Add de la collection Parameters de Command. Parameters.Add prendra comme entrée les arguments de constructeur ou un objet Parameter existant. Lorsque vous affectez une référence null au Value d’un Parameter, utilisez DBNull.Value.
Pour les paramètres autres que Input, vous devez définir la propriété ParameterDirection pour spécifier si le type de paramètre est InputOutput, Output ou ReturnValue. L’exemple suivant illustre la différence entre la création des paramètres Input, Output et ReturnValue.