| |
VB.NET - Ein- und Umsteigerdatatable aus ungebundenem Datagridview | | | Autor: thunder_jei | Datum: 05.11.12 15:36 |
| Hallo Zusammen!
Ich suche heute schon den ganzen Tag nach einer Lösung für mein Problem, werde aber leider einfach nicht fündig.
Folgendes Problem:
Ich habe eine Funktion programmiert, welche mir den gesamten Inhalt einer ungebundenen Datagridview übergeben soll (den gesamten Inhalt). Diesen möchte ich dann in eine andere Datagridview einbinden.
Meine Idee war, den Inhalt in einem Datatable zu speichern und per Funktion zu übergeben.
Allerdings will das nicht funktionieren.
Die Funktion
Public Function GetCycleLinearDrive(....) As DataTable
.
.
.
GetCycleLinearDrive = datagridview1.datasource
End Function Das Programm
datagridview2.DataSource = GetCycleLinearDrive Es tut sich aber absolut nichts in Datagridview2.
Ich weiß nicht ob ich mit Datasource arbeiten kann, wenn ich eine ungebundene DGV habe!?
Hat jemand einen Tipp, wie ich dieses Problem lösen kann.
Hauptproblem: Wie bekomme ich die Werte einer ungebunden DGV in ein Objekt, welches ich übergeben kann?
Please help!
Danke und schöne Grüße | |
Re: datatable aus ungebundenem Datagridview | | | Autor: Manfred X | Datum: 05.11.12 15:45 |
| Hallo!
Die Datasource-Eigenschaft liefert nur eine Referenz auf GEBUNDENE Datenquellen.
Warum schreibst Du die Daten nicht zu Beginn in eine Datatable, sondern
verwendest zunächst ein ungebundenes DatagridView-Control als Datenbehälter?
Ansonsten:
Eine DataTable mit Spalten gemäß denen des Grid ausstatten und dann
in einer Doppelschleife die Zellenwerte in die Table eintragen.
MfG
Manfred | |
Re: datatable aus ungebundenem Datagridview | | | Autor: thunder_jei | Datum: 05.11.12 16:15 |
| Hallo Manfred!
Danke für die rasche Rückmeldung!
Das DataGridView berechnet im Hintergrund eine Vielzahl von Werten, daher ist sie ungebunden aufgebaut.
Das heißt also, dass ich mir die Daten nur manuell über Schleifen in eine Datatable holen kann?
Ist im Vergleich zur Datasource sicher langsam und aufwenden, oder?
SG,
Jürgen | |
Re: datatable aus ungebundenem Datagridview | | | Autor: Manfred X | Datum: 05.11.12 16:24 |
| Hallo!
Das DatagridView-Control berechnet Werte ????
Die Übertragung von Daten geht normalerweise schnell. Probieren.
Unter der Voraussetzung, dass der ValueType der Spalten beim
Füllen des Grid festgelegt worden ist:
Public Function GetData(ByVal grid As DataGridView) As DataTable
Dim dt As New DataTable
For i As Integer = 0 To grid.Columns.Count - 1
dt.Columns.Add(grid.Columns(i).Name, grid.Columns(i).ValueType)
Next i
For r As Integer = 0 To grid.Rows.Count - 1
Dim tablerow As DataRow = dt.NewRow
For c As Integer = 0 To grid.Columns.Count - 1
tablerow(c) = grid(c, r)
Next c
dt.Rows.Add(tablerow)
Next r
Return dt
End Function | |
Re: datatable aus ungebundenem Datagridview | | | Autor: thunder_jei | Datum: 05.11.12 16:54 |
| Hallo!
Danke für den Beispielcode!
Ich habe nun aber noch eine Frage zum Verständnis.
Ich übergebe an deine Funktion das DataGridView und bekomme eine DataTable zurück.
Kann ich diese DataTable nicht direkt wieder in eine andere DGV einlesen?
zB
datagridview2.DataSource = GetData(DataGridView1) Mir ist nicht ganz klar, wie ich die datatable ordentlich weiterverwenden kann.
Ich weiß natürlich, wie ich einzelne Werte aus der DataTable auslese, aber nicht, wie ich Sie als Ganzes in meine DataGridView bekommen.
Schöne Grüße | |
Re: datatable aus ungebundenem Datagridview | | | Autor: Manfred X | Datum: 05.11.12 17:06 |
| Hallo!
Kleiner Flüchtigkeitsfehler ...
So muss die Wert-Zuweisung lauten:
tablerow(c) = grid(c, r).Value
Den Wert der Grid-Zelle eventuell vor Zuweisung noch
auf "Nothing" abfragen und in dem Fall "DBNull.Value" verwenden.
If grid(c, r).Value Is Nothing Then
tablerow(c) = DBNull.Value
Else
tablerow(c) = grid(c, r).Value
End If Bei der Datenbindung werden keine Daten ins Grid "eingelesen".
Die Daten bleiben in der Source. Das Grid fungiert dabei nur als
Bindeglied zur Anzeige und zum Editieren.
Beitrag wurde zuletzt am 05.11.12 um 17:22:48 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|