Benutzer id Auslesen

  • VB.NET
  • .NET 3.5

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von patty.

    habe es so versucht
    Label2 ist der Benutzername
    Label 4 Soll die id sein

    VB.NET-Quellcode

    1. Private Sub Startseite_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. Dim connection As New SqlConnection("server = LAPTOP-TCIJK8DE\SQLEXPRESS1; Database = Verdiensthilfe; Integrated Security = true ")
    3. Dim command As New SqlCommand("select Id from Table_Benutzer Where Benutzername" = Label2.Text, connection)
    4. Label4.Text = command.ToString
    5. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „patty“ ()

    Hast vlt ein kleines beispiel verstehe das nicht ganz weil ich will ja die id von dem Benutzer der sich einloggt dort stehen haben


    mit dem Benutzernamen habe ich es so im login click gemacht







    Else

    VB.NET-Quellcode

    1. Dim table As New DataTable()
    2. adapter.Fill(table)
    3. If table.Rows.Count() <= 0 Then
    4. MsgBox("Benutzername oder Passwort Falsch")
    5. UsernameTextBox.Text = ""
    6. PasswordTextBox.Text = ""
    7. Else
    8. Startseite.Label2.Text = UsernameTextBox.Text
    9. Startseite.Show()
    10. Me.Hide()

    Mal so als Beispiel

    VB.NET-Quellcode

    1. Public Sub MachWas(ByVal UserName As String)
    2. Dim ConnectionString As String = "Meine Connection"
    3. Dim SqlCmd As String = "SELECT * FROM Tabelle WHERE " & "UserName" & " LIKE " & "@UserName"
    4. Dim Data As New DataTable("Tabelle")
    5. Using Adapter As New SqlDataAdapter(SqlCmd, ConnectionString)
    6. With Adapter.SelectCommand
    7. .Parameters.AddWithValue("@UserName", UserName)
    8. End With
    9. Adapter.Fill(Data)
    10. End Using
    11. If Data.Rows.Count = 0 Then Exit Sub
    12. Dim UserID As Integer = 0
    13. Dim UserName_DB As String = ""
    14. Integer.TryParse(Data.Rows(0).Item("UserIDSpalte").ToString, UserID)
    15. UserName_DB = Data.Rows(0).Item("UserNameSpalte").ToString
    16. End Sub


    Schau dir auch Using an, ist besonders beim Arbeiten mit SqlDataAdapter, SqlCommand, SqlConnection und so wichtig, damit nach dem Abarbeiten der SqlAbfrage das Objekt wieder geschlossen wird.
    Wichtig ist auch, dass du nicht den Usernamen direkt in der SQL Abfrage abfragst, sondern hier mit Parametern arbeitest (siehe Beispiel), da du sonst Problem mit SqlInjections bekommen kannst.

    w3schools.com/sql/sql_injection.asp
    Hi bin dir für dein bespiel echt dankbar
    aber bin wohl doch noch zu dumm verstehe auch die Deklaration BenuzernameDb nicht
    was raffe ich denn nicht habe es so probiert aber griff ins Klo


    VB.NET-Quellcode

    1. ​Public Class Startseite
    2. Public Sub findId(ByVal Benutzername As String)
    3. Dim ConnectionString As String = "server = LAPTOP-TCIJK8DE\SQLEXPRESS1; Database = Verdiensthilfe; Integrated Security = true"
    4. Dim SqlCmd As String = "SELECT * FROM Table_Benutzer WHERE " & "Benutzername" & " LIKE " & "@benutzername"
    5. Dim Data As New DataTable("Tabelle")
    6. Using Adapter As New SqlDataAdapter(SqlCmd, ConnectionString)
    7. With Adapter.SelectCommand
    8. .Parameters.AddWithValue("@benutzername", LblBenutzername.Text)
    9. End With
    10. Adapter.Fill(Data)
    11. End Using
    12. If Data.Rows.Count = 0 Then Exit Sub
    13. Dim ID As Integer = 0
    14. Dim BenutzernameDb As String = ""
    15. Integer.TryParse(Data.Rows(0).Item("Id").ToString, LblId.Text)
    16. BenutzernameDb = Data.Rows(0).Item("Benutzername").ToString
    17. End Sub
    18. Private Sub Startseite_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    19. findId()
    20. End Sub
    Versuchs mal so

    VB.NET-Quellcode

    1. Public Class TestDing
    2. Public Function Login(ByVal Benutzername As String,
    3. ByVal Passwort As String) As Boolean
    4. If String.IsNullOrWhiteSpace(Benutzername) Then Return False
    5. Dim ConnectionString As String = "server = LAPTOP-TCIJK8DE\SQLEXPRESS1; Database = Verdiensthilfe; Integrated Security = true"
    6. Dim SqlCmd As String = "SELECT * FROM Table_Benutzer WHERE " & "Benutzername" & " LIKE " & "@Benutzername" & " AND " & "BenutzerPasswort" & "=" & "@BenutzerPasswort"
    7. Dim Data As New DataTable("Tabelle")
    8. Using Adapter As New SqlDataAdapter(SqlCmd, ConnectionString)
    9. With Adapter.SelectCommand
    10. .Parameters.AddWithValue("@Benutzername", Benutzername)
    11. .Parameters.AddWithValue("@BenutzerPasswort", Passwort)
    12. End With
    13. Adapter.Fill(Data)
    14. End Using
    15. 'DataTable enthält 0 Zeilen, wenn Benutzername und Passwort nicht in der angegebenen Kombination in Tabelle gefunden wurden.
    16. If Data.Rows.Count = 0 Then Return False
    17. Lbl_Id.Text = Data.Rows(0).Item("Id").ToString
    18. LblBenutzername.Text = Data.Rows(0).Item("Benutzername").ToString
    19. Return True
    20. End Function
    21. Private Sub Startseite_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    22. If Not Login("Helmut", "HelmutsPasswort") Then
    23. MessageBox.Show("Benutzername oder Passwort falsch.", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
    24. Exit Sub
    25. End If
    26. End Sub
    27. End Class



    Oder auch etwas größer, mit einem User-Objekt als Rückgabe, welches später in der Form weiter verwendet werden kann.

    VB.NET-Quellcode

    1. Public Class TestDing
    2. Public Class User
    3. Public ReadOnly Property UserId As Integer = 0
    4. Public ReadOnly Property UserName As String = ""
    5. ' Weitere Felder wenn vorhanden...
    6. Sub New(ByVal Row As DataRow)
    7. If Row Is Nothing Then Exit Sub
    8. With Me
    9. 'If Row.Table.Columns.Contains("Id") = Abfrage ob Feld "Id" in der DataRow vorhanden ist, wenn ja ...
    10. 'AndAlso Not Row.IsNull("Id") = prüfen ob der Wert "Id" nicht Null ist, was zu Fehlern führt beim Auslesen und dann ...
    11. 'Then Integer.TryParse(Row.Item("Id").ToString, UserId) = Den Wert der Zelle (Row.Item("Id).ToString) mit Interger.TryParse versuchen als Integer in die Klasseneigenschaft "UserID" zuschreiben
    12. If Row.Table.Columns.Contains("Id") AndAlso Not Row.IsNull("Id") Then Integer.TryParse(Row.Item("Id").ToString, UserId)
    13. If Row.Table.Columns.Contains("Benutzername") AndAlso Not Row.IsNull("Benutzername") Then UserName = Row.Item("Benutzername").ToString
    14. 'Weitere Felder wenn vorhanden ...
    15. End With
    16. End Sub
    17. End Class
    18. Private Function Login(ByVal Benutzername As String,
    19. ByVal Passwort As String) As User
    20. If String.IsNullOrWhiteSpace(Benutzername) Then Return Nothing
    21. Dim ConnectionString As String = "server = LAPTOP-TCIJK8DE\SQLEXPRESS1; Database = Verdiensthilfe; Integrated Security = true"
    22. Dim SqlCmd As String = "SELECT * FROM Table_Benutzer WHERE " & "Benutzername" & " LIKE " & "@Benutzername" & " AND " & "BenutzerPasswort" & "=" & "@BenutzerPasswort"
    23. Dim Data As New DataTable("Tabelle")
    24. Using Adapter As New SqlDataAdapter(SqlCmd, ConnectionString)
    25. With Adapter.SelectCommand
    26. .Parameters.AddWithValue("@Benutzername", Benutzername)
    27. .Parameters.AddWithValue("@BenutzerPasswort", Passwort)
    28. End With
    29. Adapter.Fill(Data)
    30. End Using
    31. 'DataTable enthält 0 Zeile, weil Benutzername und Passwort nicht in der angegebenen Kombination in Tabelle gefunden wurden.
    32. If Data.Rows.Count = 0 Then Return Nothing
    33. Return New User(Data.Rows(0))
    34. End Function
    35. Private Property AngemeldeterUser As User = Nothing
    36. Private Sub Startseite_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    37. AngemeldeterUser = Login("Helmut", "HelmutsPasswort")
    38. If AngemeldeterUser Is Nothing Then
    39. MessageBox.Show("Benutzername oder Passwort falsch.", "", MessageBoxButtons.OK, MessageBoxIcon.Error)
    40. Exit Sub
    41. End If
    42. Lbl_Id.Text = AngemeldeterUser.UserId
    43. LblBenutzername.Text = AngemeldeterUser.UserName
    44. End Sub
    45. End Class

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

    Hi ich glaube du weisst genau wie und wo du was Coden musst
    ich bin leider noch nicht so fit


    blicke jetzt garnicht mehr durch
    weil ich habe ja bereits das login im loginclick

    möchte doch nach dem loginclick wenn sich dann die nächste form also Startseite öffnet das die labels benutzername und Id die werte von der Datenbank Tabelle beziehen das muss doch leichter gehen oder täusche ich mich da

    Bitte sei mir nicht böse habe mit deinen codes viel probiert aber nichts klappt
    Bilder
    • 151.PNG

      88,47 kB, 1.143×579, 7 mal angesehen
    • 151.PNG

      24,4 kB, 507×243, 6 mal angesehen

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

    So habs jetzt einfacher gemacht Aber vielen dank

    VB.NET-Quellcode

    1. Private Sub Startseite_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    2. Dim Connection As New SqlConnection("server = LAPTOP-TCIJK8DE\SQLEXPRESS1; Database = Verdiensthilfe; Integrated Security = true")
    3. Dim command As New SqlCommand("SELECT * FROM Table_Benutzer WHERE Benutzername = @benutzername", Connection)
    4. command.Parameters.Add("@benutzername", SqlDbType.VarChar).Value = LblBenutzername.Text
    5. Dim adapter As New SqlDataAdapter(command)
    6. Dim table As New DataTable()
    7. adapter.Fill(table)
    8. LblId.Text = table.Rows(0)(0).ToString
    9. End Sub