Zugriff auf Datatable aus einem Modul

  • VB.NET

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

    Zugriff auf Datatable aus einem Modul

    Ich habe im Dataset Designer ein paar Datatables erstellt und lasse sie beim MyBase.Load Event mit Daten aus einer xml-Datei füllen. Im Programm selbst können dann neue Datensätze ergänzt werden, sofern der Inhalt der Spalte "Name" nicht bereits vorhanden ist.
    Soweit klappt das alles wie gewünscht, allerdings würde ich die Abfrage, ob ein Datensatz schon existiert, gerne in eine Funktion in einem Modul packen, damit ich das nicht an jeder Stelle extra schreiben muss.

    In der Form funktioniert dieser Code, im Modul leider nicht. "Countries" ist kein Member von "Edit.Database".

    VB.NET-Quellcode

    1. Dim filter As String = "Name='" + InputWindow.TextBoxName.Text + "'"
    2. Dim x() As Data.DataRow = Database.Countries.Select(filter)
    3. If x.Length > 0 Then
    4. '
    5. Else
    6. '
    7. End If



    Kann man das Dataset irgendwie global zugänglich machen?

    typx schrieb:

    in einem Modul packen
    Nimm eine Klasse, der kannst Du alles, was gebraucht wird, als Property übergeben.
    Ich empfehle Dir mal, zunächst zu vergessen, dass es in VB Module gibt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wozu soll er eine Klasse nehmen?
    Ein Dataset ist doch bereits eine Klasse.

    @TE: Doppelklicks mal im Dataset-Designer auf eine Tabelle, dann öffnet sich das CodeBehind-Fenster des Datasets, und da kannste zusätzliche Methoden anlegen, wie etwa, ob ein Datensatz schon existiert.
    Also Objekt-Orientierung: das Dataset "weiss selbst", ob der Datensatz existiert - das soll nicht ein Modul wissen, und auch keine weitere Klasse.