Imports C1.Win.C1TrueDBGrid Imports System Imports System.Data Imports System.Data.SqlTypes Imports System.Data.SqlClient Namespace TKB.VV.Server Public Class clsServerinventar Inherits TKB.VV.DB.clsServer_Inventar Private Stammdaten As New TKB.VV.Stammdaten.clsStammdaten Dim mMutierer As String Public Umgebung As New DataTable Public Kategorie As New DataTable Public OS As New DataTable Public OSLevel As New DataTable Public Backup As New DataTable Public Retention As New DataTable Public db As New DataTable Public dbBackup As New DataTable Public dbRetention As New DataTable Public Standort As New DataTable Public Weiteres_Typ1 As DataTable Public Weiteres_Typ2 As DataTable Public Weiteres_Typ3 As DataTable Public Weiteres_Typ4 As DataTable Public Weiteres_Typ5 As DataTable Public Weiteres_Backup_Loesung1 As DataTable Public Weiteres_Backup_Loesung2 As DataTable Public Weiteres_Backup_Loesung3 As DataTable Public Weiteres_Backup_Loesung4 As DataTable Public Weiteres_Backup_Loesung5 As DataTable Public Weiteres_Retention1 As DataTable Public Weiteres_Retention2 As DataTable Public Weiteres_Retention3 As DataTable Public Weiteres_Retention4 As DataTable Public Weiteres_Retention5 As DataTable Public Tree_Data_For_Search As New DataTable Public Betriebsprovider As New DataTable Property MutiererText() As String Get Return mMutierer End Get Set(ByVal value As String) mMutierer = value End Set End Property Dim m_applfilter As Integer Property Applfilter As Integer Get Return m_applfilter End Get Set(value As Integer) m_applfilter = value End Set End Property Dim m_filter As Integer Property filter As Boolean Get Return m_filter End Get Set(value As Boolean) m_filter = value End Set End Property Sub New() Umgebung = Stammdaten.Get_Stammdaten("Server_Umgebung", "Bezeichnung") Kategorie = Stammdaten.Get_Stammdaten("Server_Kategorie", "Bezeichnung") OS = Stammdaten.Get_Stammdaten("Server_OS", "Bezeichnung") OSLevel = Stammdaten.Get_Stammdaten("Server_OSLevel", "Bezeichnung") Backup = Stammdaten.Get_Stammdaten("Server_Backup_Loesung", "Bezeichnung") Retention = Stammdaten.Get_Stammdaten("Server_Backup_Retention", "Bezeichnung") db = Stammdaten.Get_Stammdaten("Server_DB", "Bezeichnung") dbBackup = Stammdaten.Get_Stammdaten("Server_DB_Backup_Loesung", "Bezeichnung") dbRetention = Stammdaten.Get_Stammdaten("Server_DB_Backup_Retention", "Bezeichnung") Standort = Stammdaten.Get_Stammdaten("Server_Standort", "Bezeichnung") Weiteres_Typ1 = Stammdaten.Get_Stammdaten("Server_Weiteres_Typ", "Bezeichnung") Weiteres_Typ2 = Stammdaten.Get_Stammdaten("Server_Weiteres_Typ", "Bezeichnung") Weiteres_Typ3 = Stammdaten.Get_Stammdaten("Server_Weiteres_Typ", "Bezeichnung") Weiteres_Typ4 = Stammdaten.Get_Stammdaten("Server_Weiteres_Typ", "Bezeichnung") Weiteres_Typ5 = Stammdaten.Get_Stammdaten("Server_Weiteres_Typ", "Bezeichnung") Weiteres_Backup_Loesung1 = Stammdaten.Get_Stammdaten("Server_Weiteres_Backup_Loesung", "Bezeichnung") Weiteres_Backup_Loesung2 = Stammdaten.Get_Stammdaten("Server_Weiteres_Backup_Loesung", "Bezeichnung") Weiteres_Backup_Loesung3 = Stammdaten.Get_Stammdaten("Server_Weiteres_Backup_Loesung", "Bezeichnung") Weiteres_Backup_Loesung4 = Stammdaten.Get_Stammdaten("Server_Weiteres_Backup_Loesung", "Bezeichnung") Weiteres_Backup_Loesung5 = Stammdaten.Get_Stammdaten("Server_Weiteres_Backup_Loesung", "Bezeichnung") Weiteres_Retention1 = Stammdaten.Get_Stammdaten("Server_Weiteres_Retention", "Bezeichnung") Weiteres_Retention2 = Stammdaten.Get_Stammdaten("Server_Weiteres_Retention", "Bezeichnung") Weiteres_Retention3 = Stammdaten.Get_Stammdaten("Server_Weiteres_Retention", "Bezeichnung") Weiteres_Retention4 = Stammdaten.Get_Stammdaten("Server_Weiteres_Retention", "Bezeichnung") Weiteres_Retention5 = Stammdaten.Get_Stammdaten("Server_Weiteres_Retention", "Bezeichnung") Betriebsprovider = Stammdaten.Get_Stammdaten("Server_Provider", "Bezeichnung") End Sub Public Overloads Sub dispose() MyBase.Dispose() Try Umgebung.Dispose() Kategorie.Dispose() OS.Dispose() OSLevel.Dispose() Backup.Dispose() Retention.Dispose() db.Dispose() dbBackup.Dispose() dbRetention.Dispose() Standort.Dispose() Weiteres_Backup_Loesung1.Dispose() Weiteres_Backup_Loesung2.Dispose() Weiteres_Backup_Loesung3.Dispose() Weiteres_Backup_Loesung4.Dispose() Weiteres_Backup_Loesung5.Dispose() Weiteres_Retention1.Dispose() Weiteres_Retention2.Dispose() Weiteres_Retention3.Dispose() Weiteres_Retention4.Dispose() Weiteres_Retention5.Dispose() Weiteres_Typ1.Dispose() Weiteres_Typ2.Dispose() Weiteres_Typ3.Dispose() Weiteres_Typ4.Dispose() Weiteres_Typ5.Dispose() Betriebsprovider.Dispose() Catch ex As Exception End Try End Sub Public Function Get_Server(ByVal Nr As Integer) Me.cpMainConnectionProvider = Globals.conn Me.iServerInventarNr = New SqlInt32(CType(Nr, Int32)) Globals.conn.OpenConnection() Me.SelectOne() Me.MutiererText = Get_Mutierer(Me.iMutierer.Value) Globals.conn.CloseConnection(True) End Function Public Function Save_Data() As Integer Me.cpMainConnectionProvider = Globals.conn Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) Globals.conn.OpenConnection() Me.Update() Globals.conn.CloseConnection(True) Return Me.iServerInventarNr.Value End Function ''' ''' Mutierer auslesen ''' ''' ''' Public Function Get_Mutierer(ByVal nr As Integer) As String Dim ma As New TKB.VV.DB.clsMitarbeiter Dim dt As New DataTable Dim Retvalue As String ma.cpMainConnectionProvider = Globals.conn ma.iMitarbeiternr = New SqlInt32(CType(nr, Int32)) dt = ma.SelectOne() If dt.Rows.Count = 0 Then Retvalue = ("{" + nr.ToString + "}") Else Retvalue = ma.sName.ToString + " " + ma.sVorname.ToString + ", " + ma.sTgnummer.ToString End If ma.Dispose() dt.Dispose() Return Retvalue End Function ''' ''' Löschen eines Datensatzes erstellen. ''' ''' ''' ''' Public Function Delete_Server(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Server(Basenr) End If Me.cpMainConnectionProvider = Globals.conn Me.bAktiv = New SqlBoolean(CType(False, Boolean)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) Globals.conn.OpenConnection() Me.Update() Globals.conn.CloseConnection(True) End Function ''' ''' Löschen eines Datensatzes . ''' ''' ''' ''' Public Overloads Function Delete(Optional ByVal Basenr As Integer = 0) As Integer If Basenr <> 0 Then Get_Server(Basenr) End If Me.cpMainConnectionProvider = Globals.conn Globals.conn.OpenConnection() MyBase.Delete() Globals.conn.CloseConnection(True) End Function ''' ''' Neue Kuendigungsfrist einfügen ''' ''' ''' Public Function Add_New(Optional ByVal Parentid As Integer = 0) As Integer Dim db As New TKB.VV.DB.clsMyKey_Tabelle db.cpMainConnectionProvider = Globals.conn Dim newkey = db.get_dbkey("Server_Inventar") db.Dispose() Me.iServerInventarNr = New SqlInt32(CType(newkey, Int32)) Me.sBezeichnung = New SqlString(CType("*** Neues Element ***", String)) Me.sBeschreibung = New SqlString(CType("", String)) Me.iParentID = New SqlInt32(CType(0, Int32)) Me.bAktiv = New SqlBoolean(CType(True, Boolean)) Me.daErstellt_am = New SqlDateTime(CType(Now, DateTime)) Me.daMutiert_am = New SqlDateTime(CType(Now, DateTime)) Me.iMutierer = New SqlInt32(CType(Globals.clsmitarbeiter.iMitarbeiternr.Value, Int32)) Me.iServer_UmgebungNr = New SqlInt32(CType(1, Int32)) Me.iServer_KategorieNr = New SqlInt32(CType(1, Int32)) Me.iServer_OSNr = New SqlInt32(CType(1, Int32)) Me.iServer_OSLevelNr = New SqlInt32(CType(1, Int32)) Me.sBemerkung_OS = New SqlString(CType("", String)) Me.iServer_Backup_LoesungNr = New SqlInt32(CType(1, Int32)) Me.iServer_Backup_RetentionNr = New SqlInt32(CType(1, Int32)) Me.sServer_Backup_Bemerkung = New SqlString(CType("", String)) Me.iServer_DBNr = New SqlInt32(CType(1, Int32)) Me.sServer_DB_Bemerkung = New SqlString(CType("", String)) Me.iServer_DB_Backup_LoesungNr = New SqlInt32(CType(1, Int32)) Me.iServer_DB_Backup_RetentionNr = New SqlInt32(CType(1, Int32)) Me.sServer_DB_Backup_Bemerkung = New SqlString(CType("", String)) Me.iServer_StandortNr = New SqlInt32(CType(1, Int32)) Me.sServer_Stanmdort_Bemerkung = New SqlString(CType("", String)) Me.iServer_Weiteres_Backup_LoesungNr1 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_Backup_LoesungNr2 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_Backup_LoesungNr3 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_Backup_LoesungNr4 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_Backup_LoesungNr5 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_TypNr1 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_TypNr2 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_TypNr3 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_TypNr4 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_TypNr5 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_RetentionNr1 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_RetentionNr2 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_RetentionNr3 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_RetentionNr4 = New SqlInt32(CType(1, Int32)) Me.iServer_Weiteres_RetentionNr5 = New SqlInt32(CType(1, Int32)) Me.sServer_Weiteres_Bemerkung1 = New SqlString(CType("", String)) Me.sServer_Weiteres_Bemerkung2 = New SqlString(CType("", String)) Me.sServer_Weiteres_Bemerkung3 = New SqlString(CType("", String)) Me.sServer_Weiteres_Bemerkung4 = New SqlString(CType("", String)) Me.sServer_Weiteres_Bemerkung5 = New SqlString(CType("", String)) Me.iServer_ProviderNr = New SqlInt32(CType(0, Int32)) Me.sRZ_Betreiber_Standort = New SqlString(CType("", String)) Me.cpMainConnectionProvider = Globals.conn If Parentid <> 0 Then Me.iParentID = New SqlInt32(CType(Parentid, Int32)) End If Globals.conn.OpenConnection() Me.Insert() Globals.conn.CloseConnection(True) Return newkey End Function Dim treedata As New DataSet Public Function Load_tree(ByRef tree As TreeView, Optional fnkt As Integer = 0) tree.Nodes.Clear() Load_Treedata(fnkt) If Not (treedata Is Nothing) Then Dim oView As DataView = treedata.Tables(0).DefaultView Dim oTable As DataTable = oView.Table Dim oDS As DataSet = New DataSet() oDS.Tables.Add(oTable.Copy()) If oDS.Relations.Contains("SelfRefenceRelation") = False Then oDS.Relations.Add("SelfRefenceRelation", _ oDS.Tables(0).Columns("mainkey"), _ oDS.Tables(0).Columns("Parentid")) End If oTable.Dispose() oTable = Nothing LoadTreeView(oDS, tree) oDS.Dispose() oDS = Nothing End If Select_First_Datanode(tree) End Function Public Function Load_tree_filter(ByRef tree As TreeView, ByVal treedata As DataSet) tree.Nodes.Clear() If Not (treedata Is Nothing) Then Dim oView As DataView = treedata.Tables(0).DefaultView Dim oTable As DataTable = oView.Table Dim oDS As DataSet = New DataSet() oDS.Tables.Add(oTable.Copy()) If oDS.Relations.Contains("SelfRefenceRelation") = False Then oDS.Relations.Add("SelfRefenceRelation", _ oDS.Tables(0).Columns("mainkey"), _ oDS.Tables(0).Columns("Parentid")) End If oTable.Dispose() oTable = Nothing LoadTreeView(oDS, tree) oDS.Dispose() oDS = Nothing End If Select_First_Datanode(tree) End Function Sub Load_Treedata(ByVal fnkt As Integer) treedata.Tables.Clear() Dim selectcommand As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) selectcommand.CommandText = "sp_ServerInventar" selectcommand.Parameters.Add("@Fnkt", SqlDbType.Int) selectcommand.Parameters(0).Value = fnkt selectcommand.CommandType = CommandType.StoredProcedure selectcommand.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = selectcommand da.Fill(treedata, "Tree") Me.Tree_Data_For_Search = treedata.Tables(0).Copy Catch ex As Exception MsgBox(ex.Message) Finally connection.Close() da.Dispose() selectcommand.Dispose() End Try End Sub ''' ''' Tree aufbauen ''' ''' ''' ''' Private Sub LoadTreeView(ByVal oDS As DataSet, ByRef oTreeview As TreeView) 'Dim oTreeView As TreeView = New TreeView() Dim oDataRow As DataRow For Each oDataRow In oDS.Tables(0).Rows If Not oDataRow.IsNull("Parentid") Then If oDataRow.Item("Parentid") = 0 Then 'If oDataRow.IsNull("Parentid") Then Dim oNode As New TreeNode() oNode.Text = Trim(oDataRow("Bezeichnung").ToString()) oNode.Tag = oDataRow("Mainkey").ToString oNode.ImageIndex = oDataRow("ImageIndex") oNode.SelectedImageIndex = oDataRow("ImageIndex") oNode.StateImageIndex = oDataRow("ImageIndex") 'Dim fnt_Strikeout As Font 'If oDataRow("AKTIV") = 0 Then ' fnt_Strikeout = New System.Drawing.Font(oTreeview.Font.FontFamily, oTreeview.Font.Size, FontStyle.Strikeout) ' oNode.NodeFont = fnt_strikeout 'End If oTreeview.Nodes.Add(oNode) RecursivelyLoadTree(oDataRow, oNode, oTreeview) End If End If Next oDataRow oDS.Dispose() oDS = Nothing End Sub ''' ''' Child-Nodes hinzufügen ''' ''' ''' ''' Private Sub RecursivelyLoadTree(ByVal oDataRow As DataRow, ByRef oNode As TreeNode, ByRef tv As TreeView) Dim oChildRow As DataRow For Each oChildRow In oDataRow.GetChildRows("SelfRefenceRelation") Dim oChildNode As New TreeNode() oChildNode.Text = Trim(oChildRow("Bezeichnung").ToString()) oChildNode.Tag = oChildRow("Mainkey").ToString() oChildNode.ImageIndex = oChildRow("ImageIndex") oChildNode.SelectedImageIndex = oChildRow("ImageIndex") oChildNode.StateImageIndex = oChildRow("ImageIndex") 'If oChildRow("AKTIV") = 0 Then 'Dim fnt_Strikeout As Font 'If oChildRow("AKTIV") = 0 Then ' fnt_Strikeout = New System.Drawing.Font(tv.Font.FontFamily, tv.Font.Size, FontStyle.Strikeout) ' oChildNode.NodeFont = fnt_Strikeout 'End If 'End If oNode.Nodes.Add(oChildNode) RecursivelyLoadTree(oChildRow, oChildNode, tv) Next oChildRow End Sub Public Sub insert_server_applikation(ByVal servernr As Integer, ByVal applnr As Integer) Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) sqlcmd.CommandText = "sp_get_set_server_applikation" sqlcmd.Parameters.Add("@serverapplnr", SqlDbType.Int) sqlcmd.Parameters.Add("@servernr", SqlDbType.Int) sqlcmd.Parameters.Add("@applnr", SqlDbType.Int) sqlcmd.Parameters.Add("@bemerkung", SqlDbType.VarChar) sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.Int) sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int) sqlcmd.Parameters(0).Value = 0 sqlcmd.Parameters(1).Value = servernr sqlcmd.Parameters(2).Value = applnr sqlcmd.Parameters(3).Value = "" sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value sqlcmd.Parameters(5).Value = 2 sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() sqlcmd.ExecuteNonQuery() connection.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Public Sub refresh_applikation(servernr As Integer, ByRef tree As Windows.Forms.TreeView) tree.Nodes.Clear() Dim treedata1 As New DataSet Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) sqlcmd.CommandText = "sp_get_set_server_applikation" sqlcmd.Parameters.Add("@serverapplnr", SqlDbType.Int) sqlcmd.Parameters.Add("@servernr", SqlDbType.Int) sqlcmd.Parameters.Add("@applnr", SqlDbType.Int) sqlcmd.Parameters.Add("@bemerkung", SqlDbType.VarChar) sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.Int) sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int) sqlcmd.Parameters(0).Value = 0 sqlcmd.Parameters(1).Value = servernr sqlcmd.Parameters(2).Value = 0 sqlcmd.Parameters(3).Value = "" sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value sqlcmd.Parameters(5).Value = 1 sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = sqlcmd da.Fill(treedata1, "Tree") connection.Close() Catch ex As Exception MsgBox(ex.Message) End Try For Each r As DataRow In treedata1.Tables(0).Rows If (Me.Applfilter = 0 And r("imageindex") = 0) Or (Me.Applfilter = 1 And r("imageindex") = 1) Or Me.Applfilter = 2 Then Dim tn As New TreeNode tn = tree.Nodes.Add(r("Bezeichnung")) tn.Tag = r("ApplikationNr") tn.ImageIndex = r("imageindex") tn.SelectedImageIndex = r("imageindex") tn.StateImageIndex = r("imageindex") End If Next End Sub Public Sub refresh_Server(Applikationnr As Integer, ByRef tree As Windows.Forms.TreeView) tree.Nodes.Clear() Dim treedata1 As New DataSet Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) sqlcmd.CommandText = "sp_get_set_server_applikation" sqlcmd.Parameters.Add("@serverapplnr", SqlDbType.Int) sqlcmd.Parameters.Add("@servernr", SqlDbType.Int) sqlcmd.Parameters.Add("@applnr", SqlDbType.Int) sqlcmd.Parameters.Add("@bemerkung", SqlDbType.VarChar) sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.Int) sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int) sqlcmd.Parameters(0).Value = 0 sqlcmd.Parameters(1).Value = 0 sqlcmd.Parameters(2).Value = Applikationnr sqlcmd.Parameters(3).Value = "" sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value sqlcmd.Parameters(5).Value = 3 sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() da.SelectCommand = sqlcmd da.Fill(treedata1, "Tree") connection.Close() Catch ex As Exception MsgBox(ex.Message) End Try tree.Nodes.Clear() If Not (treedata1 Is Nothing) Then Dim oView As DataView = treedata1.Tables(0).DefaultView Dim oTable As DataTable = oView.Table Dim oDS As DataSet = New DataSet() oDS.Tables.Add(oTable.Copy()) If oDS.Relations.Contains("SelfRefenceRelation") = False Then oDS.Relations.Add("SelfRefenceRelation", _ oDS.Tables(0).Columns("mainkey"), _ oDS.Tables(0).Columns("Parentid")) End If oTable.Dispose() oTable = Nothing LoadTreeView(oDS, tree) oDS.Dispose() oDS = Nothing End If tree.ExpandAll() Select_First_Datanode(tree) End Sub Public Sub Delete_Server_Applikation(ByVal Servernr As Integer, ByVal Applikationnr As Integer) Dim treedata1 As New DataSet Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) sqlcmd.CommandText = "sp_get_set_server_applikation" sqlcmd.Parameters.Add("@serverapplnr", SqlDbType.Int) sqlcmd.Parameters.Add("@servernr", SqlDbType.Int) sqlcmd.Parameters.Add("@applnr", SqlDbType.Int) sqlcmd.Parameters.Add("@bemerkung", SqlDbType.VarChar) sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.Int) sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int) sqlcmd.Parameters(0).Value = 0 sqlcmd.Parameters(1).Value = Servernr sqlcmd.Parameters(2).Value = Applikationnr sqlcmd.Parameters(3).Value = "" sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value sqlcmd.Parameters(5).Value = 4 If Applikationnr = -1 Then sqlcmd.Parameters(5).Value = 5 sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() sqlcmd.ExecuteNonQuery() connection.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Public Sub Activate_Server_Application(ByVal key As Integer) Dim treedata1 As New DataSet Dim sqlcmd As New SqlCommand Dim connection As New SqlConnection() Dim da As New SqlDataAdapter("", connection) sqlcmd.CommandText = "sp_get_set_server_applikation" sqlcmd.Parameters.Add("@serverapplnr", SqlDbType.Int) sqlcmd.Parameters.Add("@servernr", SqlDbType.Int) sqlcmd.Parameters.Add("@applnr", SqlDbType.Int) sqlcmd.Parameters.Add("@bemerkung", SqlDbType.VarChar) sqlcmd.Parameters.Add("@mitarbeiternr", SqlDbType.Int) sqlcmd.Parameters.Add("@fnkt", SqlDbType.Int) sqlcmd.Parameters(0).Value = key sqlcmd.Parameters(1).Value = 0 sqlcmd.Parameters(2).Value = 0 sqlcmd.Parameters(3).Value = "" sqlcmd.Parameters(4).Value = Globals.clsmitarbeiter.iMitarbeiternr.Value sqlcmd.Parameters(5).Value = 6 sqlcmd.CommandType = CommandType.StoredProcedure sqlcmd.Connection = connection Try connection.ConnectionString = Globals.sConnectionString connection.Open() sqlcmd.ExecuteNonQuery() connection.Close() Catch ex As Exception MsgBox(ex.Message) End Try End Sub Public Function FindNode(ByVal _nodeCollection As TreeNodeCollection, ByVal SearchVal As Integer, ByVal SearchString As String) As TreeNode Dim tmpNode As TreeNode For Each _child As TreeNode In _nodeCollection If _child.Tag = SearchVal Then Return _child End If tmpNode = FindNode(_child.Nodes, SearchVal, SearchString) If Not tmpNode Is Nothing Then Return tmpNode End If Next Return Nothing End Function Public Sub FindByText(ByRef tree As TreeView, ByVal Searchtext As String) Dim nodes As TreeNodeCollection = tree.Nodes Dim n As TreeNode For Each n In nodes FindRecursive(n, Searchtext, tree) Next End Sub Public Sub FindByTag(ByRef tree As TreeView, ByVal Searchtext As String) Dim nodes As TreeNodeCollection = tree.Nodes Dim n As TreeNode For Each n In nodes FindRecursive_tag(n, Searchtext, tree) Next End Sub Private Sub FindRecursive_tag(ByVal tNode As TreeNode, ByVal Searchtext As String, ByRef tree As TreeView) Dim tn As TreeNode For Each tn In tNode.Nodes ' if the text properties match, color the item If tn.Tag = Searchtext Then tree.SelectedNode = tn End If FindRecursive_tag(tn, Searchtext, tree) Next End Sub Private Sub FindRecursive(ByVal tNode As TreeNode, ByVal Searchtext As String, ByRef tree As TreeView) Dim tn As TreeNode For Each tn In tNode.Nodes ' if the text properties match, color the item If tn.Text = Searchtext Then tree.SelectedNode = tn End If FindRecursive(tn, Searchtext, tree) Next End Sub Public Function Select_First_Datanode(ByRef tree As TreeView) Try Dim tn As New TreeNode Dim tnok As New TreeNode tn = tree.Nodes(0) Try For i As Integer = 1 To 100 tnok = tn tn = tn.Nodes(0) Next Catch ex As Exception End Try tree.SelectedNode = tnok Catch End Try End Function End Class End Namespace