Variablen übergeben in VB.net

JadePhoenix87

Grünschnabel
Hallo,

wenn ich mich im Login anmelde möchte ich das der Benutzername an das nächste Formular übergeben wird damit das Programm dann feststellen kann wer sich angemeldet hat und wer welche Rechte besitzt.

Ich habe bis jetzt leider noch nicht rausgefunden wie ich den Benutzername an das folgende Formular übergeben kann ;( Ich hoffe ihr könnt mir helfen.

Dankeschön :)
 
Eine relativ simple Möglichkeit wäre, den Benutzernamen in eine globale Variable zu schreiben. Dazu solltest du dann noch ein Modul anlegen, in welchem die Variable vereinbart wird.
 
Dankeschön ;)

Ich hab jetzt aber schon wieder ein neues Problem und zwar möchte ich Daten aus einer Access Datenbank auslesen und mir in einer Listbox anzeigen lassen weist du vielleicht wie das geht?
 
Bitte stelle nicht so allgemeine Fragen in der Form "Ich möchte aus einer Datenbank lesen, wie geht das?" hier im Forum. Wenn du Google anstrengst, findest du da sofort zig Beispiele.

Such mal nach .NET ODBC oder auch .NET OleDB.

Wenn du dann während des Umsetzens noch konkrete Probleme hast, dann wird dir hier im Forum sicher geholfen werden.

Zum Thema globales Modul für solche Variablen wie den Benutzernamen:
Dabei hast du das Problem, das den Wert der Variable jedes andere Modul ändern kann. Du hast also keine wirkliche Gewissheit, dass die Daten gerade stimmen.

Eine mögliche Lösung währe, zB die Variable mit dem Benutzernamen als statisches, privates Feld in der Klasse des Login Formulars zu hinterlegen und dann Zugriff darauf durch ein statisches Property zu ermöglichen. Wenn du das bei mehreren Variablen machst, die dann in unterschiedlichen Klassen liegen, kannst du ja noch eine gobale Klasse machen, die über eigene statische Propertys wieder den Wert der entsprechenden Propertys der anderen Klassen zurückgibt.

Also zum Beispiel:

-Klasse "FrmLogin":
Code:
private static string strUsername;

public static string Username
{
    get { return this.strUsername; }
}

Und um das bei mehreren solchen Konstellationen auch noch an einem zentralen Punkt zu haben:

-Klasse "GlobaObjects":
Code:
public static string Username
{
    get { return FrmLogin.Username; }
}

Statt die Werte über GlobalObjects statisch zu machen kannst du natürlich auch das Singleton-Pattern verwenden, was in den meisten Fällen sogar besser währe. Aber ich schweife aus, das sollte erstmal an Antwort genügen.

Ich hoffe, dir geholfen zu haben.
 
Hallo,

wenn ich mich im Login anmelde möchte ich das der Benutzername an das nächste Formular übergeben wird damit das Programm dann feststellen kann wer sich angemeldet hat und wer welche Rechte besitzt.

Ich habe bis jetzt leider noch nicht rausgefunden wie ich den Benutzername an das folgende Formular übergeben kann ;( Ich hoffe ihr könnt mir helfen.

Dankeschön :)

Bevor du irgend nen kram mit globalen Variablen anfängst:
Also du könntest einfach den Konstruktor des neuen Formulars überladen indem du 2 Parameter hinzufügst und die übergebenen Werte in Attribute speicherst:
Code:
Public Class neuesFenster

    Private username, userpasswort As String

    Sub New(ByVal user As String, ByVal passwort As String)

        ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
        InitializeComponent()

        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
        Me.username = user
        Me.userpasswort = passwort
    End Sub
End Class

Nun kannst du aus der Form mit der Benutzereingabe das ganze einfach übergeben:
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim newWindow As neuesFenster
        Dim benutzername As String = "hans"
        Dim benutzerpasswort As String = "wurst"

        newWindow = New neuesFenster(benutzername, benutzerpasswort)
        newWindow.ShowDialog()

    End Sub

Hoffe das war verständlich...
 

Neue Beiträge

Zurück