Datatable in Klasse als Rückgabe-Objekt

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Datatable in Klasse als Rückgabe-Objekt

    Hallo zusammen,

    sicher eine irrige Frage, aber im Momment hängt es da leider bei mir...

    Aus einer Klasse möchte ich Werte zurückgeben. Da die Anzahl der Spalten gleichbleibt und es jedoch auch mehr als eine Zeile sein kann, dachte ich an eine DataTable.

    Wie aber muss ich die DataTable in der Klasse definieren damit ich diese während dem Ablauf füllen und dann zurückgeben kann? Ich denke dazu müsste ich im aufrufenden Source ebenfalls "Dim Result as new Klassenname.getDataTable" verwenden damit ich dann auf das Ergebnis von einer bzw mehrerer Zeilen der DataTable zugreifen kann?

    Sorry, aber ich komme nicht drauf :(

    Gruss,
    Dani

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DniBo“ ()

    Hm, also

    ich bin mir nicht 100% sicher, ob ich dich verstanden habe.
    Aber wenn ja, dann erstell doch einfach eine Property vom Typ DataTable und ein private member vom typ Datatable...

    VB.NET-Quellcode

    1. Public Class ClassWithDt
    2. Private dt As DataTable
    3. Public Property ClsDataTable() As DataTable
    4. Get
    5. Return dt
    6. End Get
    7. Set(ByVal value As DataTable)
    8. dt = value
    9. End Set
    10. End Property
    11. End Class
    12. Public Class Form1
    13. Dim myCls As New ClassWithDt
    14. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15. myCls.ClsDataTable = New DataTable
    16. End Sub
    17. End Class
    Das ist meine Signatur und sie wird wunderbar sein!
    Nur als Rückgabeparameter für "Werte" ist DataTable oversized und ungeeeignet, denn du willst vmtl eine untypisierte DataTable zurückgeben.

    eines List(Of Object()) wäre genauso untypisiert, nur wesentlich schneller und resourcenschonend.
    Hallo zusammen.

    @Mono:
    Genau das hatte ich im Sinn, damit kann ich eine DT mit mehreren Spalten innerhalb der Klasse erstellen und bei Bedarf mehr als eine Zeile zurück liefern.

    @ErfinderDesRades:
    Angenommen ich habe 10 Werte pro Ergebnis, und zwei oder drei Ergebniszeilen werden zurückgeliefert, ist DT dann nicht übersichtlicher? Im Grunde werden je Feld nur Strings (Texte) zurück gegeben. Aber wie würdest Du das mit der List(... machen?

    Gruss,
    Dani
    man muß halt ieinen Datentyp haben, der ein "Ergebnis" repräsentieren kann. Sinnvollerweise codet man sich einen, entweder richtig als eigene Klasse, oder - besser - richtig als typisierte DataTable.

    Natürlich kann auch die untypisierte DataTable ein Ergebnis repräsentieren - jede Art von Ergebnis sogar. Aber halt untypisiert, und das kann eine List(Of Object()) ebensogut.

    Hast du bereits eine Klassse, die eines deiner "Ergebnisse" repräsentieren kann?
    Möchtest du eine programmieren?