示例#1
0
        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 = "";
            }
        }
示例#2
0
        /// <summary>
        /// Zurückliefert eine Bindinglist, die hält, das Deutsch Tabelle von Datenbank
        /// </summary>
        /// <returns></returns>
        public BindingList<Deutsch> GetAllDeutscheWoerter()
        {
            BindingList<Deutsch> list = new BindingList<Deutsch>();

            using (OleDbConnection conn = new OleDbConnection(_connString))
            {
                conn.Open();
                //select all from deutsch
                OleDbCommand command = new OleDbCommand("Select * From Deutsch", conn);
                OleDbDataReader reader = command.ExecuteReader();
                //while read
                while (reader.Read())
                {
                    Deutsch deutsch = new Deutsch("");
                    deutsch.GUID = reader[1].ToString();
                    deutsch.Wort = reader[2].ToString();
                    deutsch.Artikel = reader[3].ToString();
                    list.Add(deutsch);
                }
                conn.Close();
            }
            return list;
        }
示例#3
0
 public void func(Deutsch deutsch, Englisch englisch)
 {
     DataFactory.dpf.DP.saveDeutscheRekord(deutsch, englisch);
 }
示例#4
0
 public void func(Deutsch deutsch, Englisch englisch)
 {
     DataFactory.dpf.DP.saveDeutscheRekord(deutsch, englisch);
 }
示例#5
0
        /// <summary>
        /// Sucht für eine Aufzeichnung mit deutsch element, und zurücklierfert den Rekord
        /// </summary>
        /// <param name="deutsch"></param>
        /// <returns></returns>
        public Deutsch suchenDeutschRekord(Deutsch deutsch)
        {
            BindingList<Deutsch> list = GetAllDeutscheWoerter();

            if (deutsch != null)
            {
                foreach (Deutsch deu in list)
                {
                    if (deu.Wort.Equals(deutsch.Wort, StringComparison.InvariantCultureIgnoreCase)) //if (deu.Wort == deutsch.Wort)
                    {
                        return deu;
                    }
                }
                return null;
            }
            else
            { return null; }
        }
示例#6
0
        /// <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();
            }
        }
示例#7
0
        /// <summary>
        /// Speichert deutsche Wort als neue Rekord in Datenbank
        /// </summary>
        /// <param name="deutsch"></param>
        public void saveDeutschesWord(Deutsch deutsch)
        {
            using (OleDbConnection conn = new OleDbConnection(_connString))
                {
                    conn.Open();
                    //erstellen in deutsch
                    OleDbCommand command = new OleDbCommand("Insert into Deutsch ([Wort],[Artikel]) values (?,?)", conn);
                    command.Parameters.AddWithValue("@Wort", deutsch.Wort);
                    command.Parameters.AddWithValue("@Artikel", deutsch.Artikel);
                    command.ExecuteNonQuery();

                    conn.Close();
                }
        }
示例#8
0
        /// <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));
                }
            }
        }
示例#9
0
        /// <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;
        }
示例#10
0
        /// <summary>
        /// Sucht ob einen Rekord gibt in den Deutsche Tabelle
        /// </summary>
        /// <param name="deutsch"></param>
        /// <returns></returns>
        public bool pruefenDeutschList(Deutsch deutsch)
        {
            BindingList<Deutsch> list = GetAllDeutscheWoerter();

            if (deutsch != null)
            {
                foreach (Deutsch deu in list)
                {
                    if (deu.Wort.Equals(deutsch.Wort, StringComparison.InvariantCultureIgnoreCase)) //if (deu.Wort == deutsch.Wort)
                    {
                        return true;
                    }
                }
                return false;
            }
            else
            { return false; }
        }