Announcement

Collapse
No announcement yet.

TreeView Update

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TreeView Update

    Hallo!

    Ich suche jetzt seit 2 Tage im Internet nach einem passenden Code zum Updaten eines TreeView - leider ohne Erfolg.

    Mein TreeView wird über eine MySQL-Datenbank gefüllt:

    Code:
     ConnectDb()
    
            Dim daHardware As New MySqlDataAdapter("SELECT * FROM hardware", myconnection)
            Dim daHWType As New MySqlDataAdapter("SELECT * FROM hwtypes", myconnection)
    
            daHardware.Fill(myHwTypeDataSet, "dtHardware")
            daHWType.Fill(myHwTypeDataSet, "dtHWTypes")
    
            myconnection.Close()
    
            myHwTypeDataSet.Relations.Add("HWtoType", _
                myHwTypeDataSet.Tables("dtHWTypes").Columns("TYPEID"), _
                myHwTypeDataSet.Tables("dtHardware").Columns("TYPEID"))
    
            Dim nodeHardware, nodeHWTypes As TreeNode
            Dim rowHardware, rowHWTypes As DataRow
    
            For Each rowHWTypes In myHwTypeDataSet.Tables("dtHWTypes").Rows
                nodeHWTypes = New TreeNode
                nodeHWTypes.Text = rowHWTypes("HWTYPE")
                nodeHWTypes.Name = rowHWTypes("TYPEID")
                TreeView.Nodes.Add(nodeHWTypes)
    
                For Each rowHardware In rowHWTypes.GetChildRows("HWtoType")
                    nodeHardware = New TreeNode
                    nodeHardware.Text = rowHardware("HWNAME")
                    nodeHardware.Name = rowHardware("HWID")
                    nodeHWTypes.Nodes.Add(nodeHardware)
                Next
            Next
    
            daHardware.Dispose()
            daHWType.Dispose()
            myHwTypeDataSet.Dispose()
    
            
            CloseDB()
    Das funktioniert auch alles wunderbar.

    Ich füge über ein anderes Form dann Daten hinzu und rufe dann die "TreeView-Update"-Funktion auf.

    Eine MessageBox, die ich testweise dort angelegt habe, wird problemlos aufgerufen.

    Ein Nodes.Clear() funktioniert nicht. Ebensowenig wie den TreeView zu disposen und anschließend neu zu laden. Da bekomme ich einen Fehler dass der Benutzer "localhost" keinen Zugriff auf die Datenbank hat.

    Ich denke mal es kann kein großartiger Fehler sein, aber ich komme nicht drauf.

    Kann mir jemand helfen???

  • #2
    Code:
    myconnection.Close()
    Hier machst Du die Datenbankverbindung zu. Machst Du die das nächste mal auch wieder auf bevor Du Deine Funktion aufrufst?
    Der Datenbankfehler kann eigentlich nichts mit dem TreeView zu tun haben, weil das TreeView noch nicht mal DataBinding unterstützt.

    Comment


    • #3
      Hallo!

      Ich habe es jetzt noch etwas umgeschrieben und erstmal das myconnection.close() durch die Methode CloseDB() ersetzt.

      Ich habe gerade nochmal sicherheitshalber ein ConnectDB() an die betroffene Stelle eingefügt, doch da meckert er rum, dass man den ConnectionString nicht ändern darf, solange die Verbindung noch geöffnet ist - sprich: Verbindung ist da.

      Ich hatte mir gedacht, dass es vielleicht was mit dem DataAdapter zu tun hat. Dass dort noch Daten drin stehen und dann nochmal reingeschrieben werden und ihm das nicht schmeckt.

      Jedenfalls hat diese ominöse Fehlerangabe auch - wie du sagtest - nichts mit der Datenbank an sich zu tun. Dieser Fehler kam immer, wenn irgendwas mit dem DataSet/... nicht stimmte.

      Comment

      Working...
      X