Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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.

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.

  • Autor

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.

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.

  • Autor

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.

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.

  • Autor

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:

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.