Laden...

Dataview in DataTable speichern und für weitere Abfrage verwenden

Erstellt von oehrle vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.150 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
Dataview in DataTable speichern und für weitere Abfrage verwenden

verwendetes Datenbanksystem: <SQL2008Express>
Hallo, ich habe Daten in einer DataView ausgegeben. Dann übertrage ich die Daten aus der DataView in eine DataTable.


 /// Daten zuvor aus der DV sichern
                    _tempTabelle = _dv.ToTable();

Jetzt möchte ich die DataTable in eine weitere Abfrage einbinden


_sqladap.SelectCommand.CommandText = "SELECT * FROM Kopf JOIN _temptabelle  ON Kopf.Dateiname = _temptabelle.Bezeichnung";

Tabeladapter füllen


_sqladap.Fill(_ds, _tempTabelle.ToString());

Da bringt mir aber der Compiler einen Fehler: ungültiger Objektname "_tempTabelle".

Ich denke ist auch klar weil die Tabelle im DataSet nicht existiert. Wie bekomme ich die da hinein? Oder ist der komplette Ansatz falsch?

3.511 Beiträge seit 2005
vor 13 Jahren

Hallo,

im SelectCommand greifst du auf die Datenbank zu. Du machst also ein Select auf eine physische Tabelle mit dem Namen "_temptabelle". "_temptabelle" ist aber nur eine Variable irgendwo in deinem c# Code. Das kann ja nicht funktionieren. Wenn du etwas innerhalb einer DataTable selektieren möchtest, schau dir mal die Select Methode der Klasse DataTable an.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
Möchte die Tabelle mit einer anderen Verknüpfen

Hallo, das Problem ist halt, das ich nicht nur in der Tabelle dann irgendwelche Daten filtern möchte, sondern die Tabelle mit einer anderen aus meinem DataSet Verjoinen möchte. Was ist die Lösung? Eine temporäre Tabelle in SQL erstellen? Dann muß ich aber wieder genau die STruktur kennen. WEnn es möglich wäre wie in Access, da kann man ja einfach aus einer Abfrage die Datensätze in eine Tabelle lenken. hat noch jemand eine Idee?

5.299 Beiträge seit 2008
vor 13 Jahren

Also mit ... _dv.ToTable(); erzeugst du neue Daten, das ist per se sehr problematisch, weil die Daten hast du ja schon, und jetzt gibts die zweimal.

Wenn du die Daten in deinem Dataset neu verknüpfen möchtest, solltest du vordringlich versuchen, die bestehenden Daten zu verwenden, und sie nur anders verknüpft darstellen.

Um näheres dazu zu sagen, müsstest du näher erläutern, was du machen willst.

Der frühe Apfel fängt den Wurm.

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 13 Jahren
Habe es geschafft, aber sehr lahme Geschwindigkeit

Hi, es funktioniert seit längerem (aber immer noch ein Problem). Ich nutze eine Tabelle zum zwischenspeichern von Ergebnissen, die ich immer wieder in die Tabelle schreibe. Wenn ich nun eine weitere Menutabelle laden will, hole ich mir die benötigten Daten für die Auswahl der Datensätze aus der Tabelle mit dne zwischengespeicherten Daten. Das dauert alles sehr lang. Liegt daran, das ich das nicht alles komplett im DataSet abarbeiten kann (können schon,aber da funktioniert ja das JOIN nicht). Nun, wie kannn ich die Daten lokal im Cache vorhalten? Mit LinQ? Evtl. ists dort auch besser mit der Verknüpfun der Tabellen (Join) ? Hat jemand einen IDee?