Files
Doku/Dokumentation/EintragBearbeiten.vb
2020-05-12 14:55:03 +02:00

398 lines
13 KiB
VB.net

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