Imports System.Data.SQLite Public Class frmSettings Dim ToAdd As New List(Of String) Dim ToDelete As New List(Of String) Private Sub frmSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load LoadSettings() End Sub Private Sub LoadSettings() txtFavDir.Text = My.Settings.FavDir fillPaths() End Sub Private Async Sub fillPaths() Dim con = DB.getConnection Dim cmd As New SqliteCommand(Nothing, con) Dim reader As SQLiteDataReader cmd.CommandText = "SELECT p_path FROM t_paths ORDER BY p_path" Await con.OpenAsync() reader = cmd.ExecuteReader lstPaths.Items.Clear() Do While Await reader.ReadAsync lstPaths.Items.Add(CStr(reader("p_path"))) Loop reader.Close() con.Close() End Sub Private Sub btnPathAdd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathAdd.ItemClick If FBD.ShowDialog = DialogResult.OK Then Dim pfad As String = FBD.SelectedPath ToAdd.Add(pfad) lstPaths.Items.Add(pfad) End If End Sub Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick SaveSettings() Me.DialogResult = DialogResult.OK End Sub Private Sub SaveSettings() 'Allgemein speichern My.Settings.FavDir = txtFavDir.Text My.Settings.Save() 'Pfade speichern Dim con = DB.getConnection Dim cmd As New SqliteCommand(Nothing, con) cmd.Parameters.Add("@path", DbType.String) con.OpenAsync() cmd.CommandText = "INSERT INTO t_paths (p_path) VALUES (@path)" For Each pfad As String In ToAdd cmd.Parameters("@path").Value = pfad cmd.ExecuteNonQuery() Next ToAdd.Clear() cmd.CommandText = "DELETE FROM t_paths WHERE p_path = @path" For Each pfad As String In ToDelete cmd.Parameters("@path").Value = pfad cmd.ExecuteNonQuery() Next ToDelete.Clear() con.Close() End Sub Private Sub btnPathDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathDelete.ItemClick If lstPaths.SelectedItem IsNot Nothing Then ToDelete.Add(CStr(lstPaths.SelectedItem)) lstPaths.Items.Remove(CStr(lstPaths.SelectedItem)) End If End Sub Private Sub frmSettings_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing If (ToAdd.Count + ToDelete.Count) > 0 Then Dim ds = MessageBox.Show("Möchten Sie die Änderungen speichern?", Me.Text, MessageBoxButtons.YesNo) If ds = DialogResult.Yes Then SaveSettings() Me.DialogResult = DialogResult.OK ElseIf ds <> DialogResult.No Then e.Cancel = True End If End If End Sub Private Sub btnUSDX_Click(sender As Object, e As EventArgs) Handles btnFavDir.Click If FBD.ShowDialog = DialogResult.OK Then txtFavDir.Text = FBD.SelectedPath End If End Sub End Class