Heim  >  Artikel  >  Backend-Entwicklung  >  DataReader C#

DataReader C#

WBOY
WBOYOriginal
2024-09-03 15:22:29945Durchsuche

Ein Datenleser ist ein Objekt, das zum Lesen von Daten aus den Datenquellen verwendet wird. Dadurch können nur Lesevorgänge und keine Aktualisierungsvorgänge für die Datenquelle ausgeführt werden. Die Daten werden als Datenstrom von der Datenquelle abgerufen. Obwohl der Datenleser nur auf den Lesevorgang beschränkt ist, ist er äußerst effektiv und optimiert, da er nur lesen und nur weiterleiten kann. Es gibt zwei Arten von Anbietern im .Net Framework: SQLDataReader und OleDbDataReader. Der Datenleser erhöht die Anwendungsleistung, indem er den Systemaufwand reduziert, da er zu einem bestimmten Zeitpunkt die einzige Zeile im Speicher speichert. In diesem Artikel wird der Datenleser in c# zusammen mit entsprechenden Beispielen ausführlich behandelt.

Syntax:

Der SQL-Datenleser ist im Namespace System.Data.SqlClient verfügbar und die entsprechende Assembly ist System.Data.SqlClient.dll. Ein SQL-Datenleser wird wie folgt initialisiert.

SqlDataReadersqlReader = sqlCmd.ExecuteReader();

Der Execute-Reader wird verwendet, um die SQL-Anweisungen oder -Prozeduren an das sqlconnection-Objekt zu übergeben und das entsprechende Ergebnis wird im sqlreader-Objekt von SqlDataReader gespeichert. Vor dem Lesen aus einem Datenlesegerät sollte dieses immer geöffnet sein und auf den ersten Datensatz verweisen. Zum Lesen wird die read()-Methode des Datenlesers verwendet und es wird mit der nächsten Zeile fortgefahren.

Der OledB-Datenleser verhält sich ebenfalls auf die gleiche Weise. Es ist im Namensraum System.Data.OleDb verfügbar und die entsprechende Assembly ist System.Data.OleDb.dll. Ein oledbDataReader-Objekt wird verwendet, um eine Verbindung zu OLEDB-Datenquellen herzustellen und Daten von ihnen abzurufen. Wie SQLDataReader sollte auch der OledbData-Reader geöffnet sein, bevor der Lesevorgang ausgeführt wird. Ein OledB-Datenleser wird wie folgt initialisiert.

OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();

Wo der Executereader zum Ausführen der SQL-Anweisungen oder -Prozeduren verwendet wird.

Zugriff auf Datenleseergebnisse

Das Datenleserobjekt verfügt über eine Lesemethode, mit der auf Zeilen aus dem Ergebnissatz zugegriffen werden kann. Auf jeden Spaltenwert kann entweder über seinen Namen oder über die Spaltenreihenfolge zugegriffen werden, in der er im Ergebnissatz angezeigt wird.  Um die Effizienz zu verbessern, gibt es eine Reihe vordefinierter Typkonvertierungsmethoden für den Zugriff auf Werte als solche. Bei der Verarbeitung großer Datenmengen wird die Verwendung des Datenlesegeräts empfohlen, da die Daten nicht im Cache-Speicher gespeichert werden. Es empfiehlt sich immer, das Datenleserobjekt zu schließen, sobald es verwendet wird. Wenn der Befehl einige Rückgabewerte oder Ausgabeparameter hat, ist er erst verfügbar, wenn der Datenleser geschlossen ist. Ein weiterer wichtiger Punkt, den Sie bei der Verwendung eines Datenlesegeräts beachten sollten, ist, dass, wenn eine Verbindung von einem Datenlesegerät verwendet wird, kein anderes Datenlesegerät oder eine andere Operation für diese Verbindung ausgeführt werden kann. Beachten Sie außerdem, dass nur vorwärts auf den Datensatz zugegriffen werden kann. Wir können nur zum nächsten Datensatz iterieren und nicht zum vorherigen.

Arbeiten mit mehreren Sätzen

Wenn der Datenleser mehrere Ergebnismengen zurückgibt, kann die NextResult-Methode des Datenlesers für den Zugriff darauf verwendet werden. Bei der Implementierung sollte beachtet und darauf geachtet werden, dass alle Ergebnismengen iteriert werden und auf jede Spalte innerhalb der Ergebnismenge zugegriffen werden kann.

Beispiele zur Implementierung von DataReader C#

Unten finden Sie Beispiele für DataReader C#:

Beispiel #1

Normalerweise werden Daten aus der vom Datenleser zurückgegebenen Ergebnismenge gelesen, indem jede Zeile mithilfe einer While-Schleife iteriert wird. Der Rückgabewert der Lesemethode ist vom Typ „Bool“. Wenn die nächste Zeile vorhanden ist, wird „true“ zurückgegeben, und für den letzten Datensatz wird „false“ zurückgegeben. Die while-Schleife wird ausgeführt, bis die Bedingung falsch wird.

Syntax:

while(rdr.Read())
{
// operation to be performed
// Access columns
// Data manipulation
}

Wie das Schließen einer SQL-Verbindung ist es immer eine bewährte Vorgehensweise, den Datenleser zu schließen. Der gesamte While-Teil kann in einem Try-Block eingeschlossen sein und die Datenleserverbindung kann im Final-Block geschlossen werden.

Syntax:

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)
{
}
}
}
}

Ausgabe:

DataReader C#

Beispiel #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");
}
}
}
}

Ausgabe:

DataReader C#

Fazit

Daher geht es in dem Artikel ausführlich um Datenleser in c#. Es wurde auch gezeigt, wie Datenleser nur vorwärts aus dem Datenstrom gelesen werden können. Der Artikel erläuterte auch ausführlich die beiden Arten von Datenlesern, den I.esql-Datenleser und den oledb-Datenleser. Es zeigte die Funktionsweise beider Datenlesegeräte zusammen mit entsprechenden Beispielen. Der Artikel behandelte auch, wie man mit der NextResult-Methode mit mehreren Ergebnismengen arbeitet und wie jede Datenzeile mit der for-Schleife iteriert werden kann. Um mehr im Detail zu erfahren, empfiehlt es sich, Beispielprogramme zu schreiben und diese zu üben.

Empfohlener Artikel

Dies ist eine Anleitung für DataReader C#. Hier besprechen wir die Einführung in DataReader in C# und seine Beispiele sowie die Code-Implementierung und -Ausgabe. Sie können auch unsere anderen empfohlenen Artikel durchsehen, um mehr zu erfahren –

  1. C# SortedDictionary
  2. C# String Format()
  3. TextWriter in C#
  4. Statischer Konstruktor in C#

Das obige ist der detaillierte Inhalt vonDataReader C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist StringBuilder in C#Nächster Artikel:Was ist StringBuilder in C#