private void _alterDatabaseBtn_Click(object sender, EventArgs e)
        {
            DeutschTxt = DeutschComboBx.Text;
            EnglischTxt = EnglischComboBx.Text;

            Deutsch dt = new Deutsch(DeutschTxt);
            Englisch en = new Englisch(EnglischTxt);

            while (DeutschTxt == "")
            {
                MessageBox.Show("Deutsch Word fehlt!");
                return;
            }

            while (EnglischTxt == "")
            {
                MessageBox.Show("Englisch Word fehlt!");
                return;
            }

            if ((DeutschComboBx.Text != "") && (EnglischComboBx.Text != ""))
            {
                dt.func(dt, en);
                DeutschComboBx.Text = "";
                EnglischComboBx.Text = "";
            }
        }
Example #2
0
 public void func(Deutsch deutsch, Englisch englisch)
 {
     DataFactory.dpf.DP.saveDeutscheRekord(deutsch, englisch);
 }
Example #3
0
 public void func(Deutsch deutsch, Englisch englisch)
 {
     DataFactory.dpf.DP.saveDeutscheRekord(deutsch, englisch);
 }
        /// <summary>
        /// Sucht für eine Aufzeichnung mit english element, und zurückliefert den Rekord
        /// </summary>
        /// <param name="englisch"></param>
        /// <returns></returns>
        public Englisch suchenEnglischRekord(Englisch englisch)
        {
            BindingList<Englisch> list = GetAllEnglischeWoerter();

            if (englisch != null)
            {
                foreach (Englisch eng in list)
                {
                    if (eng.Word.Equals(englisch.Word, StringComparison.InvariantCultureIgnoreCase)) // if (eng.Word == englisch.Word)
                    {
                        return eng;
                    }
                }
                return null;
            }
            else
            { return null; }
        }
        /// <summary>
        /// Zurückliefert eine Bindinglist, die hält, das Englisch Tabelle von Datenbank
        /// </summary>
        /// <returns></returns>
        public BindingList<Englisch> GetAllEnglischeWoerter()
        {
            BindingList<Englisch> list = new BindingList<Englisch>();

            using (OleDbConnection conn = new OleDbConnection(_connString))
            {
                conn.Open();
                //select all from Englisch
                OleDbCommand command = new OleDbCommand("Select * From Englisch", conn);
                OleDbDataReader reader = command.ExecuteReader();
                //while read
                while (reader.Read())
                {
                    Englisch englisch = new Englisch("");
                    englisch.GUID = reader[1].ToString();
                    englisch.Word = reader[2].ToString();
                    list.Add(englisch);
                }
                conn.Close();
            }
            return list;
        }
        /// <summary>
        /// Speichert zwei UUID nummer vom beiden Deutsch und Englisch Aufzeichnungen
        /// </summary>
        /// <param name="deutsch"></param>
        /// <param name="englisch"></param>
        public void saveKreuzGuid(Deutsch deutsch, Englisch englisch)
        {
            deutsch.Englisch = englisch;

            using (OleDbConnection conn = new OleDbConnection(_connString))
            {
                conn.Open();
                //erstellen EnglischGuid und DeutschGuid
                OleDbCommand command = new OleDbCommand("Insert into Deutsch_Englisch ([DeutschUUID],[EnglischUUID]) values (?,?)", conn);
                command.Parameters.AddWithValue("@DeutschUUID", deutsch.GUID);
                command.Parameters.AddWithValue("@EnglischUUID", englisch.GUID);
                command.ExecuteNonQuery();

                conn.Close();
            }
        }
        /// <summary>
        /// Speichert englische Word als neue Rekord in Datenbank
        /// </summary>
        /// <param name="englisch"></param>
        public void saveEnglischWord(Englisch englisch)
        {
            using (OleDbConnection conn = new OleDbConnection(_connString))
            {
                conn.Open();
                //erstellen in englisch
                OleDbCommand command = new OleDbCommand("Insert into Englisch ([Word]) values (?)", conn);
                command.Parameters.AddWithValue("@Word", englisch.Word);
                command.ExecuteNonQuery();

                conn.Close();
            }
        }
        /// <summary>
        /// Speichert deutsch und englisch elements, und GuiD in kreuztabelle
        /// </summary>
        /// <param name="deutsch"></param>
        /// <param name="englisch"></param>
        public void saveDeutscheRekord(Deutsch deutsch, Englisch englisch)
        {
            /*
             * Ist deutsches Rekord in der datenbank ??
             * -->Nein --> deutsches wort in datenbank speichern
             *           + Ist englische Wort dazu in Englisch Tabelle
             *           --> Ja --> getEngWort --> in kreuztabelle speichern
             *           --> Nein --> in datenbank speichern --> kreuztabelle speichern
             * -->Ja --> deutsches wort aus der datenbank laden
             *           + Ist englische Wort dazu in Englisch Tabelle
             *           --> Ja --> getEngWort
             *                      + Ist englishes Wort GUID und deutches Wort GUID schon in kreuztabelle
             *                      --> Ja --> Mach nichts
             *                      --> Nein --> in kreuztabelle speichern
             *           --> Nein --> in datenbank speichern --> kreuztabelle speichern
             */

            if (!(pruefenDeutschList(deutsch)))
            {
                saveDeutschesWord(deutsch);

                if (pruefenEnglischList(englisch))
                {
                    saveKreuzGuid(suchenDeutschRekord(deutsch), suchenEnglischRekord(englisch));
                }
                else
                {
                    saveEnglischWord(englisch);

                    saveKreuzGuid(suchenDeutschRekord(deutsch), suchenEnglischRekord(englisch));
                }
            }
            else
            {
                Deutsch deu = suchenDeutschRekord(deutsch);

                if (pruefenEnglischList(englisch))
                {
                    Englisch eng = suchenEnglischRekord(englisch);

                    if (pruefenKreuzList(deu, eng))
                    {
                        return;
                    }
                    else
                    {
                        saveKreuzGuid(deu, eng);
                    }
                }
                else
                {
                    saveEnglischWord(englisch);

                    saveKreuzGuid(deu, suchenEnglischRekord(englisch));
                }
            }
        }
        /// <summary>
        /// Sucht ob einen Rekord ist schon im Deutsch_Englisch Tabelle
        /// </summary>
        /// <param name="deutsch"></param>
        /// <param name="englisch"></param>
        /// <returns></returns>
        public bool pruefenKreuzList(Deutsch deutsch, Englisch englisch)
        {
            /*
            if (deutsch.Uebersetzungen.Contains(englisch))
            {
                return true;
            }
            if (englisch.Uebersetzungen.Contains(deutsch))
            {
                return true;
            }
            */
            using (OleDbConnection conn = new OleDbConnection(_connString))
            {
                using (OleDbCommand command = new OleDbCommand("SELECT COUNT (*) FROM Deutsch_Englisch WHERE DeutschUUID LIKE @dUUID AND EnglischUUID LIKE @eUUID", conn))
                {
                    command.Parameters.AddWithValue("@dUUID", deutsch.GUID);
                    command.Parameters.AddWithValue("@eUUID", englisch.GUID);
                    conn.Open();
                    int count = (int)command.ExecuteScalar();

                    if (count >= 1)
                    {
                        return true;
                    }
                    conn.Close();
                }
            }

            return false;
        }
Example #10
0
        /// <summary>
        /// Sucht ob einen Rekord gibt in den Englisch Tabelle
        /// </summary>
        /// <param name="englisch"></param>
        /// <returns></returns>
        public bool pruefenEnglischList(Englisch englisch)
        {
            BindingList<Englisch> list = GetAllEnglischeWoerter();

            if (englisch != null)
            {
                foreach (Englisch eng in list)
                {
                    if (eng.Word.Equals(englisch.Word, StringComparison.InvariantCultureIgnoreCase)) //if (eng.Word == englisch.Word)
                    {
                        return true;
                    }
                }
                return false;
            }
            else
            { return false; }
        }