Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

DataTable aus DataGridView Erstellen

Frage Entwicklung VB for Applications

Mitglied: MultiStorm

MultiStorm (Level 1) - Jetzt verbinden

07.06.2010, aktualisiert 16:37 Uhr, 21342 Aufrufe, 6 Kommentare

Möchte aus einem DataGridView ein DataTabele erstellen. (VB.NET 2008)

Hallo alle zusammen,
gibt es ne möglichkeit aus einem DataGridView ein DataTabele zu erstellen ?
Mir ist klar das ich das sicher über Schleifen usw. Kapieren kann aber gibt es da nicht ein .NET Hausmittel dafür ...
bin eigentlich kein großer Fan von diesen Schleifen Kopier Geschichten ...

Habe im internet folgendes Gefunden:

How to get a DataSet from DataGrid
http://social.msdn.microsoft.com/Forums/en/adodotnetdataset/thread/0a8c ...

aber leider werde ich aus dem was die Schreiben nicht wirklich schlau. Allerdings scheint es hier funktioniert zu haven --> Rahtlosigkeit
Hat jemand da eine Idee ?
Mitglied: 14695
07.06.2010 um 16:46 Uhr
Hi,

nicht das ich wüsste. Aber warum erstellst du nicht eine DataTable und legst die DataGridView.DataSource-Eigenschaft entsprechend fest.

Ansonsten kommst du wohl um deine gehassten Schleifen nicht herum (Beispiel für ein DGV mit einer Spalte):

01.
DataGridViewRowCollection coll = dataGridView1.Rows; 
02.
 
03.
DataTable t = new DataTable(); 
04.
t.Columns.Add(); 
05.
foreach (DataGridViewRow item in coll) 
06.
07.
     t.Rows.Add(item.Cells[0].Value);	 
08.
}
Bitte warten ..
Mitglied: 14695
07.06.2010 um 16:54 Uhr
Nochmal ich, nachdem du deinen Beitrag erweitert hast.

Scheinbar fehlen Dir grundlegende Kenntnisse zum DataGridView und der Darstellung von Daten darin. Lies mal das hier DataGridView.DataSource. Das hilft bestimmt weiter.

Grüße
Bitte warten ..
Mitglied: MultiStorm
07.06.2010 um 17:08 Uhr
naja, weil einige spalten im Grid erst beim Füllen ermittelt bzw. berechnet werden, da hängen ein paar funktionen hinter die nicht per SQL realiesiert sind.
ist das C# was du gepostet hast ?

naja das mit der schleife ist eigentlich quatsch,
da das DT bzw. DS an eine Export Funktion übergeben werden soll und daort laufen wieder schleifen alles durch, ich denek ich werde mit für diese Funktion einfach eine Überladung schreiben und das Komplette Grid einfach übergeben
Bitte warten ..
Mitglied: MultiStorm
07.06.2010 um 17:16 Uhr
ja das war ja auch mein Erster gedanke:

Dim dt as DataTable

set dt = new DataTabel

dt = DataGridView.Datasource

Fertig !

Ha ha,
klapt aber nicht,
so wie cih aber den post von dir interpretiere sollte das so funktionieren

'Deklaration

Public Property DataSource As Object

'Verwendung

Dim instance As DataGridView
Dim value As Object

value = instance.DataSource

instance.DataSource = value


ein datatable ist doch auch nur ein Objekt ....

also was ist Falsch,
wenn ich das DT übergebe hat das dt = nothing ...

Funktioniert das vieleicht nur wenn das Gird auch über die DataSource eigenschaft gefüllt wurde ?
Den ich fülle das Gird per schleife wegen der zusätzlichen Berechnungen ..
Bitte warten ..
Mitglied: MultiStorm
07.06.2010 um 17:46 Uhr
Scheint so zu sein,
DataGridView.DataSource = Nothing ...
Scheint also nur zu Funzen, wenn es darüber auch gefüllt wurde.
Bitte warten ..
Mitglied: 14695
08.06.2010 um 09:20 Uhr
Hi,

1. Ja, das ist C#. Die Übersetzung von C# nach VB und umgekehrt sollte aber nicht soo ein großen Problem darstellen.
2. Nein, meinen Post hast du nicht richtig interpretiert:

Deine Frage war ob es eine Möglichkeit gibt "aus einem DataGridView eine DataTable zu erstellen". Dies habe ich mit dem Post beantwortet. Die Lösung wäre eine neue DataTable zu erstellen und diese mit der entsprechenden Anzahl von Spalten (wie im DataGridView) auszustatten und danach zeilenweise die Zellen des DataGridView in die DataTable zu kopieren.

Was du nicht erwähnt hattest (und auch nach wie vor nicht wirklich schreibst), dass du offenbar eine Datenquelle benutzt; s. u. "weil einige spalten im Grid erst beim Füllen ermittelt ... ein paar funktionen hinter die nicht per SQL realiesiert sind". Du müsstest also schon genauer sagen wo die Daten her kommen, die in deinem Grid dargestellt werden.

Es reicht nicht einfach eine "blanke" DataTable als Datenquelle anzugeben. Dein Grid "weiß" in diesem Fall ja nicht, was es machen soll! Deshalb ist deine Vermutung richtig, dass die DataTable nur verwendet wird, wenn sie vorher mit Spalten ausgestattet war. Nur dann kann das Grid die DataTable bedienen (s. hier):

01.
Dim table As DataTable = new DataTable("SomeData") 
02.
Dim column As DataColumn  
03.
Dim row As DataRow  
04.
  
05.
column = New DataColumn() 
06.
column.DataType = System.Type.GetType("System.String") 
07.
column.ColumnName = "Name" 
08.
 
09.
table.Columns.Add(column) 
10.
 
11.
dataGridView.DataSource = table
Wenn du deine DataTable wieder aus der DataSource "heraus holen" möchtest, musst du sie erst umwandeln (einfach table = ...DataSource klappt nicht). Zum Cast siehe z. B. hier:

01.
Dim table as DataTable = DirectCast(dataGridView.DataSource, DataTable)
Ich bin kein VBler, wenn der Code also nicht wirklich korrekt ist wundere dich nicht, pass ihn einfach an.

Soweit so gut.

Wenn deine Daten in dem Grid an eine Exportfunktion übergeben werden sollen: Was erwartet denn deine Exportfunktion? Die einfachste Variante wäre eventuell, die bereits angesprochene DataGridViewRowCollection zu übergeben und auszuwerten. Oder, wie du bereits meintest das komplette Grid.

Grüße
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Sortierung von DataTable nach Select aufgelöst
Frage von ForgottenRealmVisual Studio1 Kommentar

Moinmoin, ich habe mehrere DataTables die ich beim Programmstart lade und die Daten im Hintergrund halte, um später darauf ...

Visual Studio
DataGridViewComboBoxColumn - DatagridView
Frage von SachsenHessiVisual Studio2 Kommentare

Hallo all, ich stehe mal wieder auf dem Schlauch :( Ich habe ein DGV, dem eine DataGridViewComboBoxColumn zugefügt wird. ...

Batch & Shell
Powershell DataTable DataView
gelöst Frage von H41mSh1C0RBatch & Shell4 Kommentare

Hi in die Runde, ich habe ein DataGridView. An dieses habe ich eine DataTable gehängt. Jetzt möchte ich Spalten ...

Batch & Shell
Powershell 2 DataTable Daten mergen
gelöst Frage von H41mSh1C0RBatch & Shell6 Kommentare

Hi in die Runde, ich habe 2 DataTables, eine mit X Spalten und eine mit Y Spalten. Der Inhalt ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 2 StundenInternet1 Kommentar

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 9 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 20 StundenWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 22 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless15 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...