Imports System.Data.SqlClient Public Class EintragBearbeiten Public con As New SqlConnection Public cmd As New SqlCommand Public reader As SqlDataReader ' Public Rubrik As String = Main.SenderRubrik 'Public Titel As String = Main.SenderTitel Property rubrik As String = "" Property Titel As String = "" Property ID As String = "" Public abfrage As String Public Linked As String Public LinkedWith As String Public neu As Boolean = Main.Neu Public neurubrik As Boolean = False Public geaendert As Boolean Private Sub EintragBearbeiten_Load(sender As Object, e As EventArgs) Handles MyBase.Load dbload() If Class1.DebugMode = True Then Panelhinten.Dock = DockStyle.Left CmdTest.Visible = True End If If Neu = True Then anzeigen() Else Me.Text = Titel importieren(Rubrik, Titel) End If Class1.Autocomplete(TxtRubrik, "Rubrik", "Tbl_Allgemein") End Sub Public Function dbload() con.ConnectionString = Class1.DBConString cmd.Connection = con End Function Public Function importieren(Rubrik As String, titel As String) abfrage = "Rubrik='" & Rubrik & "' AND Titel='" & titel & "'" 'MsgBox(standort & netzwerk & Host) Try con.Open() cmd.CommandText = "SELECT * FROM TbL_Allgemein WHERE " & abfrage & "" Catch ex As Exception MsgBox("Fehler Function Import: " & ex.Message) End Try anzeigen() con.Close() geaendert = False End Function Public Function anzeigen() TxtInfo.Text = "" TxtBenutzername.Text = "" TxtKennwort.Text = "" TxtLink.Text = "" TxtTitel.Text = "" TxtRubrik.Text = Rubrik Try reader = cmd.ExecuteReader() Do While reader.Read() TxtTitel.Text = reader("Titel") TxtInfo.Text = reader("Info") TxtBenutzername.Text = reader("Benutzer") TxtKennwort.Text = reader("Passwort") TxtLink.Text = reader("LINK") Me.ID = reader("ID") 'TxtRubrik.Text = reader("Rubrik") Loop reader.Close() Catch ex As Exception 'MsgBox("Hostbearbeiten.Ausgabe_Host reader.Read: " & ex.Message) End Try End Function Public Function speichern(wie As String) Dim InfoSQL As String = Class1.hochkomma(TxtInfo.Text) Dim NameChanged As Boolean = False con.Close() abfrage_neu_rubrik(TxtRubrik.Text) If Rubrik = TxtRubrik.Text And Titel = TxtTitel.Text Then NameChanged = False Else NameChanged = True If abfrage_exist(TxtRubrik.Text, TxtTitel.Text) = True Then MsgBox("Bitte eindeutigen Namen verwenden.") con.Close() Exit Function Else con.Close() End If End If Try If wie = "Insert" Then Rubrik = TxtRubrik.Text Titel = TxtTitel.Text con.Open() cmd.CommandText = "INSERT INTO TbL_Allgemein (Titel, Rubrik) VALUES ('" & Titel & "', '" & Rubrik & "')" cmd.ExecuteNonQuery() abfrage = "Rubrik='" & Rubrik & "' AND Titel='" & Titel & "'" cmd.CommandText = "UPDATE TbL_Allgemein SET Rubrik = '" & TxtRubrik.Text & "', Titel = '" & TxtTitel.Text & "', Info = '" & InfoSQL & "', Benutzer = '" & TxtBenutzername.Text & "', Passwort = '" & TxtKennwort.Text & "', Link = '" & TxtLink.Text & "' WHERE " & abfrage & "" cmd.ExecuteNonQuery() con.Close() geaendert = False neu = False Main.Neu = False ElseIf wie = "Update" Then con.Close() con.Open() cmd.CommandText = "UPDATE TbL_Allgemein SET Rubrik = '" & TxtRubrik.Text & "', Titel = '" & TxtTitel.Text & "', Info = '" & InfoSQL & "', Benutzer = '" & TxtBenutzername.Text & "', Passwort = '" & TxtKennwort.Text & "', Link = '" & TxtLink.Text & "' WHERE " & abfrage & "" cmd.ExecuteNonQuery() con.Close() geaendert = False If NameChanged = True Then cFolder.FolderMove(Rubrik, Titel, TxtRubrik.Text, TxtTitel.Text) End If NameChanged = False End If Catch ex As Exception MsgBox("Speichern(wie) : " & ex.Message) con.Close() End Try Rubrik = TxtRubrik.Text Titel = TxtTitel.Text End Function Private Function abfrage_neu_rubrik(rubrik As String) con.Open() cmd.CommandText = "SELECT * FROM TbL_Allgemein WHERE Rubrik='" & rubrik & "'" cmd.ExecuteNonQuery() reader = cmd.ExecuteReader() If reader.Read() Then neurubrik = False 'MsgBox("nicht neu") Else neurubrik = True 'MsgBox("Neu") End If con.Close() End Function Private Function abfrage_exist(rubrik As String, titel As String) con.Open() cmd.CommandText = "SELECT * FROM TbL_Allgemein WHERE Rubrik='" & rubrik & "' AND Titel='" & titel & "'" cmd.ExecuteNonQuery() reader = cmd.ExecuteReader() If reader.Read() Then Return True con.Close() Else Return False con.Close() End If con.Close() End Function Private Sub CmdSave_Click(sender As Object, e As EventArgs) Handles CmdSave.Click If Neu = False Then speichern("Update") ElseIf Neu = True Then speichern("Insert") End If End Sub Private Function openfilepath() Dim ds As New DataSet() Dim islinked As Integer Dim path As String Try dbload() con.Open() Dim sda As New SqlDataAdapter("SELECT * FROM TbL_Allgemein WHERE " & abfrage & "", con) sda.Fill(ds) con.Close() Dim Info As String = ds.Tables(0).Rows(0).Item("Info") If IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = "0" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("Linked")) Then islinked = ds.Tables(0).Rows(0).Item("Linked") End If If IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = "" ElseIf Not IsDBNull(ds.Tables(0).Rows(0).Item("LinkedWith")) Then LinkedWith = ds.Tables(0).Rows(0).Item("LinkedWith") End If If islinked = "1" Then Dim dslinked As New DataSet() dbload() con.Open() Dim da As New SqlDataAdapter("SELECT * FROM Tbl_Allgemein WHERE LinkedWith='" & LinkedWith & "'", con) da.Fill(dslinked) con.Close() path = Class1.FilePath & "\" & dslinked.Tables(0).Rows(0).Item("Rubrik") & "\" & dslinked.Tables(0).Rows(0).Item("Titel") '& "\" & dslinked.Tables(0).Rows(0).Item("Host") Else 'MsgBox("not linked") path = Class1.FilePath & "\" & Rubrik & "\" & Titel '& "\" & SenderHost End If Catch ex As Exception MsgBox("openfilepath() Tbl_Allgemein: " & ex.Message) End Try con.Close() ''Pfad öffnen: Try If IO.Directory.Exists(path) Then Process.Start(path) Else IO.Directory.CreateDirectory(path) Process.Start(path) End If Catch ex As Exception End Try End Function Private Sub CmdDelete_Click(sender As Object, e As EventArgs) Handles CmdDelete.Click Dim path As String path = Class1.FilePath & "\" & Rubrik & "\" & Titel If MsgBox("Eintrag wirklich löschen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then con.Open() If MessageBox.Show("Dazugehörigen Ordner im Dateisystem löschen?", "Dateien löschen", MessageBoxButtons.YesNo) = DialogResult.Yes Then deleteFiles(path, Rubrik) ElseIf DialogResult.No Then Exit Sub End If cmd.CommandText = "DELETE TbL_Allgemein WHERE " & abfrage & "" cmd.ExecuteNonQuery() con.Close() Main.LstStandortLoad() Me.Close() Else Exit Sub End If End Sub Private Function deleteFiles(path As String, Rubrik As String) Dim rubrikpath As String = Class1.FilePath & "\" & Rubrik Try If IO.Directory.Exists(path) Then Dim files As String() = IO.Directory.GetFiles(path) For Each file As String In files IO.File.Delete(file) Next IO.Directory.Delete(path, True) Else 'MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try ''Überprüfen, ob letzter Eintrag der Rubrik bzw. ob Odner der Rubrik leer ist: Try If IO.Directory.Exists(rubrikpath) Then Dim files As String() = IO.Directory.GetFiles(rubrikpath) Dim folder As String() = IO.Directory.GetDirectories(rubrikpath) Dim out As String = "" For Each row As String In files out &= row Next For Each row As String In folder out &= row Next If out IsNot "" Then Exit Function Else IO.Directory.Delete(rubrikpath, True) End If Else 'MsgBox("Kein Ordner zum Löschen gefunden: wird übersprungen.") End If Catch ex As Exception MsgBox("Beim Löschen der Dateien: " & ex.Message) End Try End Function Private Sub CmdDateien_Click(sender As Object, e As EventArgs) Handles CmdDateien.Click openfilepath() End Sub Private Sub CmdLink_Click(sender As Object, e As EventArgs) Handles CmdLink.Click cExtProgramme.startlink(TxtLink.Text) End Sub Private Sub ChkKennwortAnzeigen_CheckedChanged(sender As Object, e As EventArgs) Handles ChkKennwortAnzeigen.CheckedChanged If ChkKennwortAnzeigen.Checked Then TxtKennwort.PasswordChar = "" Else TxtKennwort.PasswordChar = "*" End If End Sub Public Function abfrage_aenderungenspeichern() If geaendert = False Then Exit Function ElseIf geaendert = True Then Dim result As Integer = MsgBox("Änderungen speichern?", MsgBoxStyle.YesNo) If result = MsgBoxResult.No Then Exit Function ElseIf result = MsgBoxResult.Yes Then If neu = True Then speichern("Insert") Else speichern("Update") End If End If End If geaendert = False End Function Private Sub TxtRubrik_TextChanged(sender As Object, e As EventArgs) Handles TxtRubrik.TextChanged, TxtTitel.TextChanged, TxtInfo.TextChanged, TxtBenutzername.TextChanged, TxtKennwort.TextChanged, TxtLink.TextChanged geaendert = True End Sub Private Sub CmdReset_Click(sender As Object, e As EventArgs) Handles CmdReset.Click If geaendert = True Then If MsgBox("Änderungen verwerfen?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then importieren(Rubrik, Titel) Else Exit Sub End If Else Exit Sub End If End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''DEBUG'''''''''''''''''''''''''''''''''''''''''''''''''' Private Sub DebugToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DebugToolStripMenuItem.Click Panelhinten.Dock = DockStyle.Left CmdTest.Visible = True End Sub Private Sub CmdTest_Clicki(sender As Object, e As EventArgs) Handles CmdTest.Click MsgBox(Rubrik & Titel & TxtRubrik.Text & TxtTitel.Text) End Sub ''SCHLIESSEN'' Private Sub CmdAbbrechen_Click(sender As Object, e As EventArgs) Handles CmdAbbrechen.Click 'Main.LstStandortLoad() abfrage_aenderungenspeichern() If neurubrik = True Then Main.LstStandortLoad() End If Main.dgvload(Main.Tabelle) neu = False Main.LstAllgemein.SelectedItem = TxtRubrik Main.Activate() Me.Close() End Sub Private Sub Hostbearbeiten_Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 'Main.LstStandortLoad() abfrage_aenderungenspeichern() If neurubrik = True Then Main.LstStandortLoad() End If neu = False Main.dgvload(Main.Tabelle) Main.LstAllgemein.SelectedItem = TxtRubrik Main.Activate() End Sub End Class