//------------------------------------------------------------------------------------------------
        private void Button_SucheStarten_Click(object sender, EventArgs e)
        {
            TextBox_Suchfeld.Enabled    = false;
            Button_SucheStarten.Enabled = false;
            DropDown_TypAuswahl.Enabled = false;
            ListBox_Ausgabe.Items.Clear();
            OracleDataReader LeseFunktion;
            int TrefferInSpalte;

            StatusBalken.Value = 0;
            var TypAuswahl = DropDown_TypAuswahl.SelectedItem.ToString();
            var SuchText   = TextBox_Suchfeld.Text.ToLower();

            Task.Factory.StartNew(() =>
            {
                for (int i = 0; i < Tabellen.Count; i++)
                {
                    for (int i2 = 0; i2 < Tabellen[i].Spalten.Count; i2++)
                    {
                        if (Tabellen[i].Spalten[i2].DatenTyp.Equals(TypAuswahl))
                        {
                            StatusBalken.Invoke(new Action(() => StatusBalken.Maximum++));
                            //StatusBalken.Maximum++;
                        }
                    }
                }
                var SQLBefehl = new OracleCommand(string.Empty, Program.Hauptverbindung);
                for (int i = 0; i < Tabellen.Count; i++)
                {
                    for (int i2 = 0; i2 < Tabellen[i].Spalten.Count; i2++)
                    {
                        if (Tabellen[i].Spalten[i2].DatenTyp.Equals(TypAuswahl))
                        {
                            SQLBefehl.CommandText = string.Format("SELECT Count(*) From {0} Where Lower({1}) Like '{2}' ", Tabellen[i].Name, Tabellen[i].Spalten[i2].Name, SuchText);
                            LeseFunktion          = SQLBefehl.ExecuteReader();
                            SQLBefehl.FetchSize   = SQLBefehl.RowSize * 10240;
                            SQLBefehl.Prepare();
                            LeseFunktion.Read();
                            TrefferInSpalte = LeseFunktion.GetInt32(0);
                            LeseFunktion.Close();
                            if (TrefferInSpalte > 0)
                            {
                                ListBox_Ausgabe.Invoke(new Action(() => ListBox_Ausgabe.Items.Add(string.Format("Anzahl an Treffer:{0}, Tabelle:{1}, Spalte: {2}", TrefferInSpalte, Tabellen[i].Name, Tabellen[i].Spalten[i2].Name))));
                                //ListBox_Ausgabe.Items.Add(string.Format("Anzahl an Treffer:{0}, Tabelle:{1}, Spalte: {2}", TrefferInSpalte, Tabellen[i].Name, Tabellen[i].Spalten[i2].Name));
                            }
                            StatusBalken.Invoke(new Action(() => StatusBalken.Value++));
                            //StatusBalken.Value++;
                        }
                    }
                }
                TextBox_Suchfeld.Invoke(new Action <bool>(s => { TextBox_Suchfeld.Enabled = s; }), true);
                Button_SucheStarten.Invoke(new Action <bool>(s => { Button_SucheStarten.Enabled = s; }), true);
                DropDown_TypAuswahl.Invoke(new Action <bool>(s => { DropDown_TypAuswahl.Enabled = s; }), true);
                //TextBox_Suchfeld.Enabled = true;
            });
        }
        //------------------------------------------------------------------------------------------------
        private void Button_TypenErfassen_Click(object sender, EventArgs e)
        {
            Task.Factory.StartNew(() =>
            {
                Button_TypenErfassen.Invoke(new Action <bool>(s => { Button_TypenErfassen.Enabled = s; }), false);
                //Button_TypenErfassen.Enabled = false;
                var SQLBefehl         = new OracleCommand("SELECT count(*) FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'", Program.Hauptverbindung);
                SQLBefehl.CommandType = CommandType.Text;
                var LeseFunktion      = SQLBefehl.ExecuteReader();
                SQLBefehl.FetchSize   = SQLBefehl.RowSize * 1;
                LeseFunktion.Read();
                StatusBalken.Invoke(new Action <int>(s => { StatusBalken.Minimum = s; }), 0);
                StatusBalken.Invoke(new Action <int>(s => { StatusBalken.Maximum = s; }), LeseFunktion.GetInt32(0));
                StatusBalken.Invoke(new Action <int>(s => { StatusBalken.Value = s; }), 0);
                //StatusBalken.Minimum = 0;
                //StatusBalken.Maximum = LeseFunktion.GetInt32(0);
                //StatusBalken.Value = 0;
                LeseFunktion.Close();

                Program.Typen.Clear();
                SQLBefehl           = new OracleCommand("SELECT OBJECT_NAME FROM USER_OBJECTS WHERE OBJECT_TYPE = 'TABLE'", Program.Hauptverbindung);
                LeseFunktion        = SQLBefehl.ExecuteReader();
                SQLBefehl.FetchSize = SQLBefehl.RowSize * 10240;
                SQLBefehl.Prepare();
                while (LeseFunktion.Read())
                {
                    Tabellen.Add(new Tabelle(LeseFunktion.GetString(0)));
                    StatusBalken.Invoke(new Action(() => StatusBalken.Value++));
                    //StatusBalken.Value++;
                }
                LeseFunktion.Close();
                SQLBefehl.CommandText = "select TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH from user_tab_columns";
                LeseFunktion          = SQLBefehl.ExecuteReader();
                SQLBefehl.FetchSize   = SQLBefehl.RowSize * 100 * Tabellen.Count;
                SQLBefehl.Prepare();
                Tabelle GesuchteTabelle;
                string DatenTyp;
                while (LeseFunktion.Read())
                {
                    GesuchteTabelle = TabelleSuchen(LeseFunktion.GetString(0));
                    if (!ReferenceEquals(GesuchteTabelle, null))
                    {
                        DatenTyp = LeseFunktion.GetString(2);
                        GesuchteTabelle.Spalten.Add(new Spalte(LeseFunktion.GetString(1), DatenTyp, LeseFunktion.GetInt32(3)));
                        if (!Program.Typen.Contains(DatenTyp))
                        {
                            Program.Typen.Add(DatenTyp);
                        }
                    }
                }
                LeseFunktion.Close();
                StatusBalken.Invoke(new Action <int>(s => { StatusBalken.Value = s; }), 0);
                DropDown_TypAuswahl.Invoke(new Action(() => DropDown_TypAuswahl.Items.Clear()));
                DropDown_TypAuswahl.Invoke(new Action(() => DropDown_TypAuswahl.Items.AddRange(Program.Typen.ToArray())));
                DropDown_TypAuswahl.Invoke(new Action <bool>(s => { DropDown_TypAuswahl.Enabled = s; }), true);
                //DropDown_TypAuswahl.Enabled = true;
                if ((TextBox_Suchfeld.TextLength > 0) && !DropDown_TypAuswahl.SelectedItem.ToString().Equals(string.Empty))
                {
                    Button_SucheStarten.Invoke(new Action <bool>(s => { Button_SucheStarten.Enabled = s; }), true);
                    //Button_SucheStarten.Enabled = true;
                }
            });
        }