Un lecteur de données est un objet utilisé pour lire les données des sources de données. Cela ne peut effectuer qu'une opération de lecture et non une opération de mise à jour sur la source de données. Les données sont récupérées sous forme de flux de données à partir de la source de données. Bien que le lecteur de données soit limité en termes d'opération de lecture uniquement, il est très efficace et optimisé car il est en lecture seule et en transfert uniquement. Il existe deux types de fournisseurs dans le .Net Framework : SQLDataReader et OleDbDataReader. Le lecteur de données augmente les performances de l'application en réduisant la surcharge du système car il stocke la seule ligne en mémoire à un moment donné. Cet article couvrira en détail le lecteur de données en c# ainsi que des exemples appropriés.
Syntaxe :
Le lecteur de données SQL est disponible dans l'espace de noms System.Data.SqlClient et l'assembly correspondant est System.Data.SqlClient.dll. Un lecteur de données SQL est initialisé comme suit.
SqlDataReadersqlReader = sqlCmd.ExecuteReader();
Le lecteur d'exécution est utilisé pour transmettre les instructions ou procédures SQL à l'objet sqlconnection et le résultat correspondant est stocké dans l'objet sqlreader de SqlDataReader. Avant de lire à partir d'un lecteur de données, celui-ci doit toujours être ouvert et doit pointer vers le premier enregistrement. La méthode read() du lecteur de données est utilisée pour lire et passer à la ligne suivante.
Le lecteur de données Oledb se comporte également de la même manière. Il est disponible dans l'espace de noms System.Data.OleDb et l'assembly correspondant est System.Data.OleDb.dll. Un objet oledbDataReader est utilisé pour se connecter aux sources de données OLEDB et en extraire des données. Comme SQLDataReader, le lecteur oledbdata doit également être ouvert avant d'effectuer une opération de lecture. Un lecteur de données Oledb est initialisé comme suit.
OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();
Où l'executereader est utilisé pour exécuter les instructions ou procédures SQL.
L'objet lecteur de données possède une méthode de lecture qui peut être utilisée pour accéder aux lignes de l'ensemble de résultats. Chaque valeur de colonne est accessible soit en utilisant son nom, soit en utilisant l'ordre de ses colonnes dans lequel elles apparaissent dans l'ensemble de résultats. Pour améliorer l'efficacité, un ensemble de méthodes de conversion de type prédéfinies pour accéder aux valeurs en tant que telles. Il est conseillé d'utiliser le lecteur de données lorsque vous travaillez sur de grands ensembles de données, car les données ne sont pas stockées dans la mémoire cache. Il est toujours conseillé de fermer l'objet lecteur de données une fois qu'il est utilisé. Si la commande a des valeurs de retour ou des paramètres de sortie, elle n'est disponible qu'une fois le lecteur de données fermé. Une autre chose importante à garder à l’esprit lors de l’utilisation du lecteur de données est que lorsqu’une connexion est utilisée par un lecteur de données, un autre lecteur de données ou toute autre opération ne peut pas être effectuée sur cette connexion. En outre, une chose importante à retenir est que seul l’accès direct à l’ensemble de données est possible. Nous pouvons parcourir uniquement l'enregistrement suivant et non le précédent.
Si le lecteur de données renvoie plusieurs ensembles de résultats, la méthode NextResult du lecteur de données peut être utilisée pour y accéder. Lors de la mise en œuvre, il convient de noter et de veiller à ce que tous les ensembles de résultats soient itérés et que chaque colonne de l'ensemble de résultats soit accessible.
Vous trouverez ci-dessous les exemples de DataReader C# :
En général, les données sont lues à partir de l'ensemble de résultats renvoyé par le lecteur de données et consistent à parcourir chaque ligne à l'aide d'une boucle while. La valeur de retour de la méthode read est de type bool, si la ligne suivante est présente alors true est renvoyé et pour le dernier enregistrement, false est renvoyé. La boucle while sera exécutée jusqu'à ce que la condition devienne fausse.
Syntaxe :
while(rdr.Read()) { // operation to be performed // Access columns // Data manipulation }
Comme pour fermer une connexion SQL, il est toujours recommandé de fermer le lecteur de données. Pendant tout ce temps, la partie peut être enfermée dans un bloc try et la connexion du lecteur de données peut être fermée dans le bloc enfin.
Syntaxe :
try { // operation to be performed // Access columns // Data manipulation } Catch { //Handle exception here } finally { //close the data reader connection if (reader != null) { reader.Close(); } // close thesql connection }
Code :
using System; using System.Windows.Forms; using System.Data.SqlClient; namespace test { public partial class test1 : Form { public test1() { InitializeComponent(); } Public static void main() { string constr = null; SqlConnectionscon ; SqlCommandscmd ; string sstat = null; constr = "Data Source=testserver;Initial Catalog=testdb;User ID=test;Password=test"; sstat = "Select * from test"; scon = new SqlConnection(constr); try { scon.Open(); scmd = new SqlCommand(sstat, scon); SqlDataReadersstatReader = scmd.ExecuteReader(); while (sstatReader.Read()) { Console.WriteLine("Name:" sstatReader.GetValue(0) + "age:" sstatReader.GetValue(1) ); } sstatReader.Close(); scmd.Dispose(); scon.Close(); } catch (Exception ex) { } } } }
Sortie :
Code :
using System; using System.Windows.Forms; using System.Data.OleDb; namespace test { public partial class test : Form { public test() { InitializeComponent(); } Public static void main() { string constr = null; OleDbConnectionocon ; OleDbCommandocmd ; string sql = null; constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"; sql = "select * from emp"; ocon = new OleDbConnection(constr); try { ocon.Open(); ocmd = new OleDbCommand(sql, ocon); OleDbDataReaderordr = ocmd.ExecuteReader(); while (ordr.Read ()) { Console.WriteLine("EmpName:" ordr.GetValue(0) + "Empage:" ordr.GetValue(1) + "Esalary" ordr.GetValue(2) ); } ordr.Close(); ocmd.Dispose(); ocon.Close(); } catch (Exception ex) { Console.WriteLine("Connection Failed"); } } } }
Sortie :
Ainsi, l'article traite en détail des lecteurs de données en c#. Il a également montré comment les lecteurs de données peuvent être lus uniquement de manière descendante à partir du flux de données. L'article explique également en détail les deux types de lecteurs de données, le lecteur de données .esql et le lecteur de données oledb. Il montrait le fonctionnement des deux lecteurs de données ainsi que des exemples appropriés. L'article explique également comment travailler avec plusieurs ensembles de résultats à l'aide de la méthode NextResult et comment chaque ligne de données peut être itérée à l'aide de la boucle for. Pour en savoir plus en détail, il est conseillé d'écrire des exemples de programmes et de les mettre en pratique.
Ceci est un guide de DataReader C#. Nous discutons ici de l'introduction à DataReader en C# et de ses exemples ainsi que de l'implémentation et de la sortie du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus –
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!