Wie erstellt man eine DataTable aus einem DataGridView?

8

Ich sehe dieses Problem vielleicht rückwärts, aber ich bin trotzdem neugierig. Gibt es eine Möglichkeit, ein DataTable von dem zu erstellen, was aktuell in DataGridView angezeigt wird?

Um es klar zu sagen, ich weiß, dass Sie dies DataTable data = (DataTable)(dgvMyMembers.DataSource); tun können, allerdings mit versteckten Spalten. Ich möchte es nur aus den angezeigten Spalten erstellen.

Hoffe, dass das Sinn macht.

Also habe ich am Ende eine Kombination aus ein paar Antworten versucht, wie es am besten schien. Unten ist was ich versuche. Grundsätzlich erstelle ich die DataTable von der DataSource und arbeite dann rückwärts, basierend darauf, ob eine Spalte sichtbar ist oder nicht. Nachdem eine Spalte entfernt wurde, erhalte ich jedoch Collection was modified; enumeration operation may not execute für die nächste Iteration von foreach .

Ich bin verwirrt, da ich nicht versuche, zu ändern, um die DataGridView , nur die DataTable , also was ist los?

%Vor%     
Refracted Paladin 09.06.2011, 15:16
quelle

4 Antworten

14

Nun, Sie können

tun %Vor%

und dann

verwenden %Vor%

Ich denke, es ist der schnellste Weg. Dies ändert die Datenquellentabelle, wenn Sie es nicht möchten, dann ist das Kopieren der Tabelle erforderlich. Beachten Sie auch, dass DataGridView.DataSource nicht notwendigerweise DataTable type ist.

    
Petr Abdulin 09.06.2011, 16:01
quelle
13

Ich kenne nichts, das vom Framework bereitgestellt wird (abgesehen von dem, was Sie vermeiden wollen), das tun würde, was Sie wollen, aber (wie ich vermute, dass Sie es wissen), wäre es ziemlich einfach, selbst etwas Einfaches zu erstellen:

%Vor%     
Jay Riggs 09.06.2011 16:09
quelle
6

einer der besten Lösung hat es gefallen;)

%Vor%     
mostafa sharify niya 12.11.2012 13:10
quelle
2

Konvertieren Sie zuerst die Daten von datagridview in List und konvertieren Sie dann List in DataTable

%Vor%     
xling 09.06.2011 16:10
quelle

Tags und Links