Zum Inhalt springen

VB / Dataset / Ausgewählte Daten von einer Tabelle in eine andere kopieren


piomode1

Empfohlene Beiträge

Guten Morgen,

ich habe in einer Datasettabelle alle Daten stehen: ds.Tables("AlleDaten").

Damit ich die Connection zur Datenbank schließen kann, möchte ich gerne aus der o.g. Tabelle bestimmte Datensätze auswählen und in eine andere Tabelle des Datasets schreiben: ds.Tables("EinigeDaten").

Ich möchte dadurch langwierige For-Next-Schleifen vermeiden.

Welche zusätzlichen Objekte und Methoden benötige ich?

Wie realisiere ich ein "Select ..." für die Datensatzauswahl? Mit LINQ? Welchen Weg müssen die Daten dabei gehen?

Vielen Dank schon einmal an dieser Stelle.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen,

ich habe in einer Datasettabelle alle Daten stehen: ds.Tables("AlleDaten").

Moin,

Um welches DBMS handelt es sich denn?

Ein Dataset soll nicht die komplette DB-Struktur abbilden und schon gar nicht alle Daten halten. Mach doch eine Abfrage gegen die Datenbank und lade die gewünschten Daten ins Dataset. LINQ würde ich dann zur verfeinerten Filterung nutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo lbm1305,

vielen Dank für Deine Antwort.

Ok: mit "alle Daten" habe ich die für den Vorgang relevanten Daten gemeint. ("Select ... from ... [inner join ...] where...")

Momentan komme ich noch mit Datasets am besten zurecht. Wenn es also die Möglichkeit gibt, selektierte Daten "von ds1 nach ds2" zu kopieren, würde ich sie für diese Aufgabe gerne nutzen.

Höchstwahrscheinlich gibt es bessere Lösungen. Die werde ich erst kennenlernen. Auf jeden Fall versuche ich, den MS-SQL-Server so wenig wie möglich anzusprechen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde es verstehen, wenn es sich um eine Access-DB handelt, aber bei einem SQL-Server würde ich immer gegen den Server abfragen. z.B. könntest Du eine Stored Procedure auf dem Server anlegen.

Vorteil davon ist, dass sich der Server diese Abfrage ständig versucht zu optimieren und Änderungen würden auf dem Server statt finden. Somit muss man nicht den Quellcode des Programmes ändern. Des Weiteren kümmert sich der Server um die Connections.

Wie bzw. mit welchem Control werden denn die Daten angezeigt? Das DataGridView (Row) sollte die Eigenschaft besitzen, selektierte Zeilen zu erkennen. Ebenso sollte das ListView die SelectedRows erkennen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Sarene, hallo lbm1305,

das sind wertvolle Hinweise, die ich zu gegebener Zeit einbringen werde.

Der zeitliche Faktor wird für diese Aufgabe akzeptiert, weil:

Durch das einmalige Einlesen der Daten können/dürfen mir nachfolgende Veränderungen des Datenbestands auf dem Server egal sein.

Darum frage ich nach einer Möglichkeit, ausgewählte Daten(sätze) aus einer Dataset.Table1 in eine andere Dataset.Table2 zu kopieren.

[Edit] Die Daten werden in diesem Fall gar nicht angezeigt, sondern nur verarbeitet.[/Edit]

Allzeit mit der nebulösen Ahnung unterwegs, daß es immer noch ein wenig besser geht... :)

Ich fange gerade erst an, mich in den unendlichen Weiten der .net-Objekte zu bewegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Darum frage ich nach einer Möglichkeit, ausgewählte Daten(sätze) aus einer Dataset.Table1 in eine andere Dataset.Table2 zu kopieren.

[Edit] Die Daten werden in diesem Fall gar nicht angezeigt, sondern nur verarbeitet.[/Edit]

Ich vermute mal, dass Du über den (DataSet)-Designer gegangen bist?!

Datensätze in einem Dataset auswählen, welches nicht angezeigt wird?

Im Grunde genommen müsstest Du Zeile für Zeile Deiner DataTable durchlaufen . Die aktuelle DataRow kannst Du dann der neuen DataTable anhängen.


// Pseudocode:

foreach (DataRow row in table.DataRows)

{

   if(Bedingung)

      newTable.Rows.Add(row);

}

Eine andere Möglichkeit wäre, die Tabelle als Klasse darzustellen und dafür eine generische Liste zu nutzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank für die Anregungen und Tips.

Ich werde sie in den kommenden Projekten berücksichtigen.

Für dieses Programm: Ich greife mit mehreren "Select"s auf die Datenbank zu und sammel die Daten als Tables in einem DataSet.

Ein paar "Clear"s und ein paar Schleifen dazu - fertig.

Nicht optimal und nicht am schnellsten - aber mit meinem jetzigen (praktisch erprobten) Wissensstand machbar. :hells:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...