Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Datareader vs. Dataset | Optimierung von Datenbankoperationen
Einführung in .NET mit C#
course content

Kursinhalt

Einführung in .NET mit C#

Einführung in .NET mit C#

1. Einführung
2. Asynchrone Programmierung und Einführung in Webdienste
3. Einführung in Datenbanken mit .NET
4. CRUD-Operationen mit MySQL
5. Optimierung von Datenbankoperationen

book
Datareader vs. Dataset

Im letzten Abschnitt haben wir das Objekt MySqlDataReader verwendet, um Daten aus der Datenbank zu lesen.

Theoretisch ruft DataReader (oder MySqlDataReader) beim Ausführen einer Abfrage nicht alle Daten auf einmal ab. Stattdessen werden die Daten sequenziell abgerufen, das heißt, jeweils eine Zeile. Wenn die Methode Read() ausgeführt wird, wird die nächste Zeile in Echtzeit aus der Datenbank abgerufen.

Deshalb ist während des Datenabrufs eine aktive Verbindung zur Datenbank erforderlich. Das erklärt auch, warum das DataReader-Objekt nach dem Abrufen der Daten geschlossen werden muss.

Andererseits gibt es eine weitere Methode zum Abrufen von Daten, nämlich über einen DataAdapter. Ein DataAdapter holt die relevanten Daten aus der Datenbank und füllt damit ein DataSet, wodurch im Wesentlichen eine Kopie dieser Daten erstellt wird. Ein DataSet ist eine spezielle Klasse zur Speicherung von aus einer SQL-Datenbank abgerufenen Daten. Auf die Daten in einem DataSet kann einfach zugegriffen und diese angezeigt werden.

Obwohl beide Methoden ähnlich erscheinen, gibt es zwischen DataReader und DataSet einige wesentliche Unterschiede:

Speicherverbrauch und Speicherung:

  • DataReader ruft Datensätze einzeln aus der Datenbank ab und hält während des Lesens eine Verbindung offen. Die Daten werden nicht im Speicher abgelegt. Dies führt zu minimalem Speicherverbrauch;

  • DataSet speichert die aus der Datenbank abgerufenen Daten im Speicher der Anwendung.

Zugänglichkeit und Navigation:

  • DataReader bietet einen schnellen, nur vorwärts gerichteten Datenstrom. Er ermöglicht sequenziellen Zugriff auf die Daten und unterstützt keinen wahlfreien Zugriff oder Navigation. Ein einmal gelesener Datensatz kann nicht erneut aufgerufen werden, es sei denn, die Abfrage wird erneut ausgeführt;

  • DataSet ermöglicht das Durchlaufen der Zeilen in beliebiger Reihenfolge und das Ändern von Daten innerhalb des DataSet, ohne die Originaldaten in der Datenbank zu beeinflussen.

Echtzeit- vs. getrennte Verbindung:

  • DataReader bietet Echtzeitzugriff auf Daten aus der Datenbank. Er erfordert eine aktive Verbindung zur Datenbank während des Lesens der Daten, und die Verbindung bleibt geöffnet, bis alle Daten gelesen wurden oder bis der DataReader explizit geschlossen wird;

  • DataSet bietet getrennten Zugriff auf Daten. Sobald die Daten aus der Datenbank abgerufen und im DataSet gespeichert wurden, kann die Verbindung zur Datenbank geschlossen werden. Die Daten stehen dann innerhalb der Anwendung zur Verfügung und können offline bearbeitet werden, ohne eine Verbindung zur Datenbank aufrechtzuerhalten.

Aus den oben genannten Vor- und Nachteilen lässt sich schließen, dass DataReader für Szenarien geeignet ist, in denen nur vorwärts gerichteter Zugriff auf Daten ausreicht, während DataSet besser für Szenarien geeignet ist, in denen die Verbindungszeit minimiert werden soll und interaktiv mit Daten gearbeitet werden muss.

1. Welche der folgenden Aussagen über DataReader ist richtig?

2. Was speichert ein DataSet im Speicher?

question mark

Welche der folgenden Aussagen über DataReader ist richtig?

Select the correct answer

question mark

Was speichert ein DataSet im Speicher?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

course content

Kursinhalt

Einführung in .NET mit C#

Einführung in .NET mit C#

1. Einführung
2. Asynchrone Programmierung und Einführung in Webdienste
3. Einführung in Datenbanken mit .NET
4. CRUD-Operationen mit MySQL
5. Optimierung von Datenbankoperationen

book
Datareader vs. Dataset

Im letzten Abschnitt haben wir das Objekt MySqlDataReader verwendet, um Daten aus der Datenbank zu lesen.

Theoretisch ruft DataReader (oder MySqlDataReader) beim Ausführen einer Abfrage nicht alle Daten auf einmal ab. Stattdessen werden die Daten sequenziell abgerufen, das heißt, jeweils eine Zeile. Wenn die Methode Read() ausgeführt wird, wird die nächste Zeile in Echtzeit aus der Datenbank abgerufen.

Deshalb ist während des Datenabrufs eine aktive Verbindung zur Datenbank erforderlich. Das erklärt auch, warum das DataReader-Objekt nach dem Abrufen der Daten geschlossen werden muss.

Andererseits gibt es eine weitere Methode zum Abrufen von Daten, nämlich über einen DataAdapter. Ein DataAdapter holt die relevanten Daten aus der Datenbank und füllt damit ein DataSet, wodurch im Wesentlichen eine Kopie dieser Daten erstellt wird. Ein DataSet ist eine spezielle Klasse zur Speicherung von aus einer SQL-Datenbank abgerufenen Daten. Auf die Daten in einem DataSet kann einfach zugegriffen und diese angezeigt werden.

Obwohl beide Methoden ähnlich erscheinen, gibt es zwischen DataReader und DataSet einige wesentliche Unterschiede:

Speicherverbrauch und Speicherung:

  • DataReader ruft Datensätze einzeln aus der Datenbank ab und hält während des Lesens eine Verbindung offen. Die Daten werden nicht im Speicher abgelegt. Dies führt zu minimalem Speicherverbrauch;

  • DataSet speichert die aus der Datenbank abgerufenen Daten im Speicher der Anwendung.

Zugänglichkeit und Navigation:

  • DataReader bietet einen schnellen, nur vorwärts gerichteten Datenstrom. Er ermöglicht sequenziellen Zugriff auf die Daten und unterstützt keinen wahlfreien Zugriff oder Navigation. Ein einmal gelesener Datensatz kann nicht erneut aufgerufen werden, es sei denn, die Abfrage wird erneut ausgeführt;

  • DataSet ermöglicht das Durchlaufen der Zeilen in beliebiger Reihenfolge und das Ändern von Daten innerhalb des DataSet, ohne die Originaldaten in der Datenbank zu beeinflussen.

Echtzeit- vs. getrennte Verbindung:

  • DataReader bietet Echtzeitzugriff auf Daten aus der Datenbank. Er erfordert eine aktive Verbindung zur Datenbank während des Lesens der Daten, und die Verbindung bleibt geöffnet, bis alle Daten gelesen wurden oder bis der DataReader explizit geschlossen wird;

  • DataSet bietet getrennten Zugriff auf Daten. Sobald die Daten aus der Datenbank abgerufen und im DataSet gespeichert wurden, kann die Verbindung zur Datenbank geschlossen werden. Die Daten stehen dann innerhalb der Anwendung zur Verfügung und können offline bearbeitet werden, ohne eine Verbindung zur Datenbank aufrechtzuerhalten.

Aus den oben genannten Vor- und Nachteilen lässt sich schließen, dass DataReader für Szenarien geeignet ist, in denen nur vorwärts gerichteter Zugriff auf Daten ausreicht, während DataSet besser für Szenarien geeignet ist, in denen die Verbindungszeit minimiert werden soll und interaktiv mit Daten gearbeitet werden muss.

1. Welche der folgenden Aussagen über DataReader ist richtig?

2. Was speichert ein DataSet im Speicher?

question mark

Welche der folgenden Aussagen über DataReader ist richtig?

Select the correct answer

question mark

Was speichert ein DataSet im Speicher?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 5. Kapitel 3
some-alt