Adapter.Fill
- From: Jan <Jan@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 15 Sep 2008 16:18:01 -0700
Hallo NG,
Zur Arbeit mit dem DataAdapter-Objekt habe ich ein paar Verständnisfragen:
Zuerst erstelle ich einen DataAdapter und ordne ihm eine SQL-Abfrage und
eine Verbindung zu:
SqlDataAdapter dataAdapter = new SqlDataAdapter();
SqlCommand sqlCommand = new SqlCommand("SELECT * FROM Kunden, connection);
dataAdapter.SelectCommand = sqlCommand;
Soweit ich die einschlägige Literatur verstanden habe, wird die Abfrage nun
aber erst gegen die Datenbank abgesetzt, wenn ich auch die Fill-Methode
aufrufe und die Ergebnismenge beispielsweise in eine DataTable schreibe:
dataAdapter.Fill(dataTable);
Dafür liegt jetzt die geamte Ergebnismenge im Hauptspeicher vor, was ich bei
größeren Ergebnistabellen z. B. auf einem Webserver irgendwie beunruhigend
finde, oder ist das Quatsch?
Wenn ich jetzt ein manuelles Paging programmieren möchte, kann ich die
Ergebnismenge mit der Fill-Methode einschränken:
dataAdapter.Fill(1, 5, dataTable);
Liegt jetzt wirklich nur der "Ausschnitt" von 5 Datensätzen im Hauptspeicher
des Servers vor?
Und bekomme ich irgendwie heraus, wieviele Datensätze die SELECT-Abfrage
tatsächlich geliefert hat? Oder muß ich, um das herauszufinden, eine zweite
Abfrage, etwa SELECT COUNT(*) FROM Kunden fahren?
Im neuen .NET 3.5 Framework scheint es ja einen Pager zu geben, leider steht
aber nur .NET 2.0 zur Verfügung.
Viele Grüße
Jan
.
- Follow-Ups:
- Re: Adapter.Fill
- From: Christian Stüben
- Re: Adapter.Fill
- From: Peter Fleischer
- Re: Adapter.Fill
- Prev by Date: Update SQL-Tabelle
- Next by Date: Re: Adapter.Fill
- Previous by thread: Update SQL-Tabelle
- Next by thread: Re: Adapter.Fill
- Index(es):