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 = ""; } }
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; }
/// <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; } }