meine erste eigene klasse mit mysql ... conction string für combobox geht nicht

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von ronaldl.

    meine erste eigene klasse mit mysql ... conction string für combobox geht nicht

    das ist mein erster versuch mit klassen zu arbeiten und ich möchte gerne alle comboboxen in eine klasse packen um sie bei bedarf auf zu rufen ,
    nun bekomme ich folgende Fehlermeldung :

    Access denied for user ''@'localhost' (using password: NO) -> bei der zeile mit : reader = cmd.ExecuteReader()

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections.Generic
    3. Imports System.Text
    4. Imports System.Windows.Forms
    5. Imports System.ComponentModel
    6. Imports System.Drawing
    7. Imports System.Globalization
    8. Public Class multi_combo
    9. Inherits ComboBox
    10. Dim con As New MySqlConnection
    11. Dim sql As String
    12. Dim cmd As New MySqlCommand(sql, con)
    13. Dim myAdapter As New MySqlDataAdapter
    14. Dim ConnectionString = "server=localhost;" _
    15. & "uid=root;" _
    16. & "pwd=slotmachine;" _
    17. & "database=lenz"
    18. Dim ComboBox As New Control
    19. Public Sub anrede(ByVal anr As Integer)
    20. Dim cboa = "ComboBox" & anr
    21. cboa = Replace(cboa, " ", "")
    22. ComboBox.Name = cboa
    23. With ComboBox
    24. Me.Items.Clear()
    25. Me.Text = ""
    26. sql = "select * from hanrede order by anrede desc"
    27. Dim reader As MySqlDataReader
    28. con.Open()
    29. reader = cmd.ExecuteReader()
    30. Do While reader.Read() 'Jede Reihe durchlaufen
    31. Me.Items.Add(reader("anrede") & " / " _
    32. & reader("geschlecht"))
    33. Loop
    34. reader.Close() 'Reader schliesen
    35. con.Close() 'Connection schliesen
    36. End With
    37. End Sub
    38. End Class


    Edit by der_Kurt:
    - falsches Unterforum
    --> Beitrag verschoben

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

    Gugi schrieb:

    ich denke, das der mysql server keinen externen zugriff erlaubt, ist der auf bplaced, etc.?
    auf db4free.net gibts gratis datenbanken die externen zugriff erlauben.

    lg Gugi

    Schau dir mal den ConnectionString an. Der MySql-Server läuft auf localhost also sein PC. Und die gleiche Fehlermeldung hatte ich auch mal und da war das Problem das Passwort

    singu schrieb:

    Gugi schrieb:

    ich denke, das der mysql server keinen externen zugriff erlaubt, ist der auf bplaced, etc.?
    auf db4free.net gibts gratis datenbanken die externen zugriff erlauben.

    lg Gugi

    Schau dir mal den ConnectionString an. Der MySql-Server läuft auf localhost also sein PC. Und die gleiche Fehlermeldung hatte ich auch mal und da war das Problem das Passwort

    vielleicht hat er eine datenbank bei bplaced, etc. und da steht ja mysql server = localhost und er dachte das muss er in seinem programm auch schreiben?

    lg Gugi
    also das ding läuft auf dem rechner wo das proggi ist also lokal..

    in einer windows form kann den das aufrufen und er m,acht alles was ich möchte

    das passwort vom connection string wird irgenwie beim Compilieren nicht im connection angezeigt
    warum ist halt mein problem.
    also das sql-probelm hat sich gelöst aber...

    er mosert bei .Items.Clear() los mit :

    Fehler 1 "Items" ist kein Member von "System.Windows.Forms.Control".

    wie krieg die items definiert ??

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections.Generic
    3. Imports System.Text
    4. Imports System.Windows.Forms
    5. Imports System.ComponentModel
    6. Imports System.Drawing
    7. Imports System.Globalization
    8. Public Class multi_combo
    9. Inherits ComboBox
    10. Dim ComboBox As New Control
    11. Public Sub anrede(ByVal anr As Integer)
    12. Dim cboa = "ComboBox" & anr
    13. cboa = Replace(cboa, " ", "")
    14. ComboBox.Name = cboa
    15. With ComboBox
    16. .Items.Clear() 'genau hier hast es mich wieder...
    17. .Text = ""
    18. Dim sql As String = "select * from hanrede order by anrede desc"
    19. Dim con As New MySqlConnection
    20. Dim cmd As New MySqlCommand(sql, con)
    21. Dim myAdapter As New MySqlDataAdapter
    22. Dim reader As MySqlDataReader
    23. con.ConnectionString = "server=localhost;" _
    24. & "uid=root;" _
    25. & "pwd=slotmachine;" _
    26. & "database=lenz"
    27. con.Open()
    28. reader = cmd.ExecuteReader()
    29. Do While reader.Read() 'Jede Reihe durchlaufen
    30. Me.Items.Add(reader("anrede") & " / " _
    31. & reader("geschlecht"))
    32. Loop
    33. reader.Close() 'Reader schliesen
    34. con.Close() 'Connection schliesen
    35. End With
    wenn du von einer ComboBox erbst, warum definierst du dann nochmals eine? Dim ComboBox As New Control
    -> weglöschen
    und statt ComboBox überall Me einsetzen...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    also Inherits combobox sagt doch aus das eine combobocx im Form von der klasse erbt

    VB.NET-Quellcode

    1. Public Sub anrede(ByVal anr As Integer)
    2. Dim cboa = "ComboBox" & anr
    3. cboa = Replace(cboa, " ", "")
    4. Me.Name = cboa


    bei sub anrede sezute ich den namen der combobox zusammen und sage mit me.name um welche combobox es sich ahndelt
    ( in dem fall combobox1 )

    mit der with variabel sage ich was mit der combobox passieren soll


    im form rufe ich das baby dann so auf



    VB.NET-Quellcode

    1. Dim cbo As New multi_combo
    2. cbo.anrede(1)


    aber da tut sich nix , ich hab zwar keine fehlermeldung mehr aber die combobox1 im form ist und bleibt leer...

    was habe ich denn da flasch gemacht ..

    die klasse sieht nun so aus:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections.Generic
    3. Imports System.Text
    4. Imports System.Windows.Forms
    5. Imports System.ComponentModel
    6. Imports System.Drawing
    7. Imports System.Globalization
    8. Public Class multi_combo
    9. Inherits ComboBox
    10. Public Sub anrede(ByVal anr As Integer)
    11. Dim cboa = "ComboBox" & anr
    12. cboa = Replace(cboa, " ", "")
    13. Me.Name = cboa
    14. With Me
    15. .Items.Clear()
    16. .Text = ""
    17. Dim sql As String = "select * from hanrede order by anrede desc"
    18. Dim con As New MySqlConnection
    19. Dim cmd As New MySqlCommand(sql, con)
    20. Dim myAdapter As New MySqlDataAdapter
    21. Dim reader As MySqlDataReader
    22. con.ConnectionString = "server=localhost;" _
    23. & "uid=root;" _
    24. & "pwd=slotmachine;" _
    25. & "database=lenz"
    26. con.Open()
    27. reader = cmd.ExecuteReader()
    28. Do While reader.Read() 'Jede Reihe durchlaufen
    29. Me.Items.Add(reader("anrede") & " / " _
    30. & reader("geschlecht"))
    31. Loop
    32. reader.Close() 'Reader schliesen
    33. con.Close() 'Connection schliesen
    34. End With
    35. End Sub
    36. End Class
    Hier der code von die klasse aufgerufen wird:

    VB.NET-Quellcode

    1. Private Sub kkn_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Dim cbo As New multi_combo
    3. cbo.anrede(1)
    4. 'Anrede
    5. Dim con As New MySqlConnection
    6. Dim myAdapter As New MySqlDataAdapter
    7. con.ConnectionString = "server=localhost;" _
    8. & "uid=root;" _
    9. & "pwd=slotmachine;" _
    10. & "database=lenz"
    11. ComboBox3.Items.Clear()
    12. ComboBox3.Text = ""
    13. Dim sql1 As String = "select * from land order by land asc"
    14. Dim cmd1 As New MySqlCommand(sql1, con)
    15. Dim reader1 As MySqlDataReader
    16. con.Open()
    17. reader1 = cmd1.ExecuteReader()
    18. Do While reader1.Read() 'Jede Reihe durchlaufen
    19. ComboBox3.Items.Add(reader1("land") & " / " _
    20. & reader1("landkurz"))
    21. Loop
    22. reader1.Close() 'Reader schliesen
    23. con.Close() 'Connection schliesen
    24. End Sub


    und hier klasse

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections.Generic
    3. Imports System.Text
    4. Imports System.Windows.Forms
    5. Imports System.ComponentModel
    6. Imports System.Drawing
    7. Imports System.Globalization
    8. Public Class multi_combo
    9. Inherits ComboBox
    10. Dim cmb As New Me
    11. Public Sub anrede(ByVal anr As Integer)
    12. Dim cboa = "ComboBox" & anr
    13. cboa = Replace(cboa, " ", "")
    14. Me.Name = cboa
    15. With Me
    16. .Items.Clear()
    17. .Text = ""
    18. Dim sql As String = "select * from hanrede order by anrede desc"
    19. Dim con As New MySqlConnection
    20. Dim cmd As New MySqlCommand(sql, con)
    21. Dim myAdapter As New MySqlDataAdapter
    22. Dim reader As MySqlDataReader
    23. con.ConnectionString = "server=localhost;" _
    24. & "uid=root;" _
    25. & "pwd=slotmachine;" _
    26. & "database=lenz"
    27. con.Open()
    28. reader = cmd.ExecuteReader()
    29. Do While reader.Read() 'Jede Reihe durchlaufen
    30. Me.Items.Add(reader("anrede") & " / " _
    31. & reader("geschlecht"))
    32. Loop
    33. reader.Close() 'Reader schliesen
    34. con.Close() 'Connection schliesen
    35. End With
    36. End Sub
    37. End Class
    habe ich aber keine fehler kein gemotze aber nix daten in der combobox des Forms

    warum hast mich mein Programm ??

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Collections.Generic
    3. Imports System.Text
    4. Imports System.Windows.Forms
    5. Imports System.ComponentModel
    6. Imports System.Drawing
    7. Imports System.Globalization
    8. Public Class multi_combo
    9. Inherits ComboBox
    10. Dim cboa As multi_combo = Nothing
    11. Public Sub anrede(ByVal anr As Integer)
    12. Me.cboa = New multi_combo()
    13. Dim cboa = "ComboBox" & anr
    14. cboa = Replace(cboa, " ", "")
    15. Me.Name = cboa
    Ok ist saberer auch wenn vb den string als solches auch ohne erkennt abr leider ändert sich nix
    die combobox im form ist immer noch leer....

    VB.NET-Quellcode

    1. Public Sub anrede(ByVal anr As Integer)
    2. Me.cboa = New multi_combo()
    3. Dim cboa As String = "ComboBox" & anr
    4. cboa = Replace(cboa, " ", "")
    5. Me.Name = cboa
    im formular wird der name der combobox gesendet der kommt auch in der klasse an.

    Die Klasse scdhein zu funktionieren der reader durchläuft alle vier db einträge

    aber in der Combobox des formulars kommt nix an

    was muß ich machen damit er die reader-werte auch in der combobox des formulars anzeigt

    das hier geht nicht...

    VB.NET-Quellcode

    1. Private Sub kkn_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. 'Anrede name der combobox an klasse senden
    3. Dim cbo As New multi_combo
    4. cbo.anrede(1)
    5. 'ComboBox werte anzeigen
    6. cbo.Show()
    7. 'ende weiter mit Programm