DataSet Speicherort bei ADO.NET (Anfängerfrage)
Hallo Community,
ich beschäftige mich heute mal mit der Abfrage von SQL Daten aus VS mit c#.
Was der DataProvider ist habe ich soweit verstanden. Wo mir aber noch kein Licht aufgegaben ist, ist wo das erstellte DataSet erzeugt und gespeichert wird.
Es wird ja ein Command (SQL Befehl) an den Server geschickt. Schickt dieser die ganzen Daten an den Client und wird dort das DataSet (Das Dataset stelle ich mir wie eine temporäre Tabelle vor) im RAM gespeichert oder liegt das auf dem Server?
Was passiert, wenn Änderungen an diesem Dataset vorgenommen werden. Werden alle Daten überschrieben oder nur das entsprechende?
Wenn ich mir das jetzt vorstelle, das ein ERP System mit 2000 Mitarbeitern in einer DB arbeiten gibt es doch sicherlich häufig den Fall, das auf die gleichen Daten zugegriffen werden müssen.
Hoffe auf einige erleuchtende Antworten von euch.
Danke,
nutzloser-user
ich beschäftige mich heute mal mit der Abfrage von SQL Daten aus VS mit c#.
Was der DataProvider ist habe ich soweit verstanden. Wo mir aber noch kein Licht aufgegaben ist, ist wo das erstellte DataSet erzeugt und gespeichert wird.
Es wird ja ein Command (SQL Befehl) an den Server geschickt. Schickt dieser die ganzen Daten an den Client und wird dort das DataSet (Das Dataset stelle ich mir wie eine temporäre Tabelle vor) im RAM gespeichert oder liegt das auf dem Server?
Was passiert, wenn Änderungen an diesem Dataset vorgenommen werden. Werden alle Daten überschrieben oder nur das entsprechende?
Wenn ich mir das jetzt vorstelle, das ein ERP System mit 2000 Mitarbeitern in einer DB arbeiten gibt es doch sicherlich häufig den Fall, das auf die gleichen Daten zugegriffen werden müssen.
Hoffe auf einige erleuchtende Antworten von euch.
Danke,
nutzloser-user
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 285512
Url: https://administrator.de/contentid/285512
Ausgedruckt am: 19.11.2024 um 17:11 Uhr
1 Kommentar
Moin,
also ein DataSet kannst du dir als Container vorstellen, der eine oder mehrere Tabellen deiner Datenbankabfragen enthält und welches du mit deiner SQL-Abfrage und einem DataAdapter füllst und auch wieder in die Datenbank zurückschreibst. Das DataSet existiert nur als InMemory-Objekt. D.h. deine Anwendung liest und beschreibt die Tabellen im DataSet. Soll dann ein Update in die Datenbank gemacht werden ruft man die Update-Methoden des DataSets/DataAdapters auf, erst dann werden die Daten zurück in die Datenbank geschrieben.
https://msdn.microsoft.com/de-de/library/system.data.dataset(v=vs.110).a ...
https://support.microsoft.com/de-de/kb/307587
Gruß jodel32
also ein DataSet kannst du dir als Container vorstellen, der eine oder mehrere Tabellen deiner Datenbankabfragen enthält und welches du mit deiner SQL-Abfrage und einem DataAdapter füllst und auch wieder in die Datenbank zurückschreibst. Das DataSet existiert nur als InMemory-Objekt. D.h. deine Anwendung liest und beschreibt die Tabellen im DataSet. Soll dann ein Update in die Datenbank gemacht werden ruft man die Update-Methoden des DataSets/DataAdapters auf, erst dann werden die Daten zurück in die Datenbank geschrieben.
Was passiert, wenn Änderungen an diesem Dataset vorgenommen werden. Werden alle Daten überschrieben oder nur das entsprechende?
Das kommt darauf an wie du die Update-Methode umsetzt. Standardmäßig aber nur die geänderten Daten. Das Objekt protokolliert die Änderungen an den Daten und weiß deshalb was es zu aktualisieren hat.https://msdn.microsoft.com/de-de/library/system.data.dataset(v=vs.110).a ...
https://support.microsoft.com/de-de/kb/307587
Gruß jodel32