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?
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)
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?
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.
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?