Imports Modules.Database Imports Modules.Logging Public Class FrmMain Private SelectedTable As Integer Private Logger As NLog.Logger Private LogWrapper As Logger Private DBFirebird As Firebird Private Sub CreateTableNodesFromDatatable(dt As DataTable) ' Node der Datenbank erstellen Dim dbNode As New TreeNode With { .Text = My.Settings.fbDatabaseLocation } ' Übernode für Tabellen erstellen Dim tablesNode As New TreeNode With { .Text = "Tabellen", .Name = "TABLES" } ' Nodes für Tabellen erstellen Dim tableNodeList As New List(Of TreeNode) For Each row As DataRow In dt.Rows Dim node As New TreeNode With { .Text = row.Item("TABLE"), .Tag = row.Item("TABLE_ID") } tableNodeList.Add(node) Next ' Nodes zusammenfügen tablesNode.Nodes.AddRange(tableNodeList.ToArray) dbNode.Nodes.Add(tablesNode) ' Nodes einhängen treeViewMain.Nodes.Add(dbNode) End Sub Private Function LoadTables() Return DBFirebird.GetDatatable("SELECT DISTINCT T.TABLE_ID,T.""TABLE"" from VWEDM_TABLE_COLUMN T") End Function Private Function DatabaseSettingsExist() Return My.Settings.fbDatabaseLocation <> String.Empty And My.Settings.fbDatasource <> String.Empty And My.Settings.fbUser <> String.Empty And My.Settings.fbPassword <> String.Empty End Function Private Sub Init() DBFirebird = New Firebird(My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) If DBFirebird.ConnectionFailed Then MsgBox("Database connection failed. Please check the log.", vbCritical) Exit Sub End If ' Get info about the logged in user CurrentUser = New ClassCurrentUser(DBFirebird) Dim dt As DataTable = LoadTables() CreateTableNodesFromDatatable(dt) End Sub Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load LogWrapper = New Logger(ClassLogger.PathType.CurrentDirectory) Logger = NLog.LogManager.GetCurrentClassLogger() Logger.Debug("DEBUG1") Logger.Debug("DEBUG2") Logger.Debug("DEBUG3") LogWrapper.Debug = False Logger.Debug("DEBUG4") Logger.Debug("DEBUG5") Logger.Debug("DEBUG6") LogWrapper.Debug = True Logger.Debug("DEBUG7") Logger.Debug("DEBUG8") Logger.Debug("DEBUG9") Logger.Info("Starting EDMDesigner..") Logger.Error(New IO.FileNotFoundException("Central 66"), "This is Error!") ' Check for existing database credentials While Not DatabaseSettingsExist() Dim result As DialogResult = FrmConnection.ShowDialog() If result = DialogResult.OK Then Exit While End If End While Init() End Sub Private Sub TreeViewMain_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles treeViewMain.NodeMouseClick If e.Button = MouseButtons.Right Then SelectedTable = -1 ' Wenn kein Node geklickt wurde, aussteigen If e.Node Is Nothing OrElse e.Node.Parent Is Nothing Then Exit Sub End If Dim parentName As String = e.Node.Parent.Name ' Das Kontextmenü für den angeklickten Node öffnen Select Case parentName Case "TABLES" SelectedTable = e.Node.Tag contextMenuTable.Show(MousePosition) End Select treeViewMain.SelectedNode = e.Node End If End Sub Private Sub SpaltenBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpaltenBearbeitenToolStripMenuItem.Click Dim dt As DataTable = DBFirebird.GetDatatable($"SELECT * FROM VWEDM_TABLE_COLUMN WHERE TABLE_ID = {SelectedTable}") gridControlTableProperties.DataSource = dt End Sub Private Sub TabelleBearbeitenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TabelleBearbeitenToolStripMenuItem.Click End Sub Private Sub DebugAnToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAnToolStripMenuItem.Click LogWrapper.Debug = True End Sub Private Sub DebugAusToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugAusToolStripMenuItem.Click LogWrapper.Debug = False End Sub Private Sub WriteDebugLogToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles WriteDebugLogToolStripMenuItem.Click Logger.Debug("Welcome to monkey island!") End Sub Private Sub SpamTheLogToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpamTheLogToolStripMenuItem.Click For index = 1 To 100000 Logger.Debug("Spam No. {0}", index) Next End Sub End Class