/// <summary>
        /// Aktualisiert einen Eintrag oder fügt einen neuen hinzu
        /// </summary>
        /// <param name="entry">Der zu speichernde Eintrag</param>
        /// <param name="adding">Angabe, ob ein neuer hinzugefügt werden soll oder nicht</param>
        public static void UpdateEntry(SqliteConnectionManager connectionManager, RdpFolderStructureEntry entry, bool adding = false)
        {
            //Prüfen, dass nix null ist
            if (connectionManager == null)
            {
                throw new ArgumentNullException(nameof(connectionManager));
            }
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            string sqlc = ""; //Der SQL-Befehl, der ausgeführt werden soll

            if (adding)       //Es soll ein Insert-Befehl ausgeführt werden
            {
                //Befehl erstellen
                sqlc += "insert into " + TABLE_CONNECTIONS + " (ParentId, Name, Type, Bemerkung";
                if (entry.Type == 0)
                {
                    sqlc += ", Hostname, Username, Password";
                }
                sqlc += ") values (" + entry.ParentId.ToString() + ", '" + entry.Caption + "', " + entry.Type.ToString() + ", '" + entry.Bemerkung + "'";
                if (entry.Type == 0)
                {
                    RdpFolderStructureRdpEntry t_rdpentry = (RdpFolderStructureRdpEntry)entry;
                    sqlc += ", '" + t_rdpentry.HostName + "', '" + t_rdpentry.UserName + "', '" + t_rdpentry.Password + "'";
                }
                sqlc += ");";
            }
            else //Es soll ein Update-Befehl ausgeführt werden
            {
                //Befehl erstellen
                sqlc += "update " + TABLE_CONNECTIONS + " set ParentId=" + entry.ParentId.ToString() + ", Name='" + entry.Caption + "', Type=" + entry.Type.ToString();
                sqlc += ", Bemerkung='" + entry.Bemerkung + "'";
                if (entry.Type == 0)
                {
                    RdpFolderStructureRdpEntry t_rdpentry = (RdpFolderStructureRdpEntry)entry;
                    sqlc += ", Hostname='" + t_rdpentry.HostName + "', Username='******', Password='******'";
                }
                sqlc += " where Id=" + entry.Id.ToString() + ";";
            }

            //Befehl ausführen
            connectionManager.ExecuteSql(sqlc); //Befehl ausführen

            //Wenn es ein Add-Vorgang war, dann soll dem Eintrag noch die Id gegeben werden

            /*if (adding)
             * {
             *  /*SqliteDataReader t_r = connectionManager.GetSqlResult("Select Max(Id) as MaxId from " + TABLE_CONNECTIONS);
             *  if (t_r.HasRows) //Nur wenn Zeilen vorhanden sind, bringt das ganze was
             *  {
             *      t_r.Read();
             *      entry.Id = Convert.ToInt32(t_r["MaxId"]);
             *  }
             *  else
             *      entry.Id = -1; //Damit das Programm damit einen Fehler feststellt
             * }*/
        }
        /// <summary>
        /// Gibt eine Liste aller Einträge zurück
        /// </summary>
        /// <param name="connectionManager">Der ConnectionManager für die Datenbankverbindung</param>
        /// <returns></returns>
        public static List <RdpFolderStructureEntry> GetEntries(SqliteConnectionManager connectionManager)
        {
            //Wenn Parameter null ist, direkt eine ArgumentNullException zurückgeben
            if (connectionManager == null)
            {
                throw new ArgumentNullException(nameof(connectionManager));
            }

            //Die Daten per DataReader herunterladen
            SqliteDataReader reader = connectionManager.GetSqlResult("Select * from " + TABLE_CONNECTIONS + " order by Name");

            //Mit einer If prüfen, ob Rows im Reader erhalten sind. Wenn nicht, direkt zum Ende der Methode gehen
            if (reader.HasRows)
            {
                //Die einzelnen Zeilen lesen und in eine Liste eintragen
                List <RdpFolderStructureEntry> t_lentries = new List <RdpFolderStructureEntry>(); //Liste wird erstellt

                while (reader.Read())                                                             //Solange noch Zeilen existieren, weiterlesen
                {
                    //Mit einer If-Abfrage anhand des Typs arbeiten
                    if (Convert.ToInt32(reader["Type"]) == 0)
                    {
                        //Daten speichern
                        RdpFolderStructureRdpEntry entry = new RdpFolderStructureRdpEntry();
                        entry.Id        = Convert.ToInt32(reader["Id"]);
                        entry.ParentId  = Convert.ToInt32(reader["ParentId"]);
                        entry.Caption   = reader["Name"].ToString();
                        entry.Type      = Convert.ToInt32(reader["Type"]);
                        entry.Bemerkung = reader["Bemerkung"].ToString();
                        entry.HostName  = reader["Hostname"].ToString();
                        entry.UserName  = reader["Username"].ToString();
                        entry.Password  = reader["Password"].ToString();
                        entry.PingHost  = Convert.ToBoolean(Convert.ToInt32(reader["PingHost"]));

                        //Eintrag der Liste hinzufügen
                        t_lentries.Add(entry);
                    }
                    else if (Convert.ToInt32(reader["Type"]) == 1)
                    {
                        //Daten speichern
                        RdpFolderStructureEntry entry = new RdpFolderStructureEntry();
                        entry.Id        = Convert.ToInt32(reader["Id"]);
                        entry.ParentId  = Convert.ToInt32(reader["ParentId"]);
                        entry.Caption   = reader["Name"].ToString();
                        entry.Type      = Convert.ToInt32(reader["Type"]);
                        entry.Bemerkung = reader["Bemerkung"].ToString();

                        //Eintrag der Liste hinzufügen
                        t_lentries.Add(entry);
                    }
                }
                //Liste zurückgeben
                return(t_lentries);
            }
            //null zurückgeben
            return(null);
        }