Lecteur de données C#

WBOY
Libérer: 2024-09-03 15:22:29
original
943 Les gens l'ont consulté

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();
Copier après la connexion

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();
Copier après la connexion

Où l'executereader est utilisé pour exécuter les instructions ou procédures SQL.

Accès aux résultats du lecteur de données

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.

Travailler avec plusieurs ensembles

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.

Exemples d'implémentation de DataReader C#

Vous trouverez ci-dessous les exemples de DataReader C# :

Exemple n°1

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
}
Copier après la connexion

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
}
Copier après la connexion

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)
{
}
}
}
}
Copier après la connexion

Sortie :

Lecteur de données C#

Exemple n°2

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");
}
}
}
}
Copier après la connexion

Sortie :

Lecteur de données C#

Conclusion

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.

Article recommandé

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 –

  1. Dictionnaire trié C#
  2. Format de chaîne C#()
  3. TextWriter en C#
  4. Constructeur statique en C#

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!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!