Benutzer mit den meisten Antworten
Klasse von System.Data.DataRow erben

Frage
-
Hallo alle zusammen.
Ich möchte mit VB.NET in Visual Studio 2013 eine von System.Data.DataRow abgeleitete Klasse erstellen. Somit ich die Anweisung
Inherits DataRow
gebe, verlangt Visual Studio einen Aufruf des Basisklassenkonstruktors
MyBase.New
in jedem nur denkbaren Konstruktor der neuen Klasse. Bei diesem Aufruf müsste ich als Argument für den Parameter "builder" einen Wert vom Typ System.Data.DataRowBuilder übergeben, den ich aber nicht übergeben kann, da DataRowBuilder für DataRow-Konstruktoren nicht direkt aus dem Code heraus verwendet werden sollte. Alle meine bisherigen Versuche, dies zu umgehen, führen zu irgendeinem Fehler.
Wie kann ich denn von einer DataRow-Klasse erben????
Danke für jeden Tipp.
WM
Antworten
-
Hi,
vergiss besser, von DataRow erben zu wollen. Eine DataRow ist mit einer DataTable verknüpft (Spalten usw.).Die frage ist, wozu Du so etwas benötigst. Wenn Du typsicher auf die Werte in einer DataRow zugreifen willst, dann mache es wie in einem typisierten DataSet. Deine Klasse erbt nicht vom DataRow, sondern hält intern nur einen Verweis auf ein DataRow-Objekt. Der Vorteil dieser Verfahrensweise ist die Möglichkeit, weitere Eigenschaften hinzuzufügen, die nicht im DataRow-Objekt enthalten sind.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 16. Juni 2017 13:09
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Freitag, 30. Juni 2017 07:40
Alle Antworten
-
Hi,
vergiss besser, von DataRow erben zu wollen. Eine DataRow ist mit einer DataTable verknüpft (Spalten usw.).Die frage ist, wozu Du so etwas benötigst. Wenn Du typsicher auf die Werte in einer DataRow zugreifen willst, dann mache es wie in einem typisierten DataSet. Deine Klasse erbt nicht vom DataRow, sondern hält intern nur einen Verweis auf ein DataRow-Objekt. Der Vorteil dieser Verfahrensweise ist die Möglichkeit, weitere Eigenschaften hinzuzufügen, die nicht im DataRow-Objekt enthalten sind.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Freitag, 16. Juni 2017 13:09
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Freitag, 30. Juni 2017 07:40
-
Hallo Peter,
vielen Dank für Deinen Hinweis.
Ich hatte schon so etwas geahnt und inzwischen eine Kopie der DataRow in der nicht geerbten Klasse vorgehalten. Ein Verweis ist natürlich noch besser. Allerdings fehlt mir die Vorstellung, wie ich einen in der Klasse verfügbaren Verweis halten kann.
Im Konstruktor erhalte ich den Verweis etwa so
Sub New(ByRef dr As DataRow)
Und dann? Kann ich den einfach einer Eigenschaft zuweisen und damit arbeiten? Etwa so:
Property extDataRow As DataRow Sub New(ByRef dr As DataRow) extDataRow = dr End Sub ... extDataRow("Name") = "SonstWer" ...
Danke für Deinen Hinweis.
WM
-
Hi,
das ist eine der Möglichkeiten. Wichtig ist festzulegen, was erreicht werden soll. Dann kann man auch über eine optimale Lösung entscheiden.--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks