/**************************************************************************/ /* private void btSpeichern_Click(object sender, EventArgs e) */ /**************************************************************************/ /* Wenn der Button speichern gedrückt wurde werden alle Felder auf ihr */ /* korrektes Format überprüft. Bei einem falschen Format wird ein Fehler */ /* ausgegeben und die Eingabe wird nicht gespeichert. Wenn keine Fehler */ /* vorhanden, wird das Von und Bis Datum an den Wochentag angepasst. Dann */ /* werden die Daten für SQL Formatiert und der INSERT Befehl wird */ /* abgeschickt. Dannach wird das gridView aktualisiert und man wird */ /* gefragt ob man einen weiteren Kurs erfassen möchte. */ /**************************************************************************/ private void btSpeichern_Click(object sender, EventArgs e) { bool fehlerGefunden = false; // Fehlerüberprüfung Anfang bool fehlerBezeichnung = c_Helper.wrongCharNumberExtra(tbBezeichnung.Text /*, 100*/); if (fehlerBezeichnung == true) { fehlerGefunden = true; MessageBox.Show("'" + tbBezeichnung.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } bool fehlerPreis = c_Helper.numFormatPunktKomma(tbPreis.Text /*, 6*/); if (fehlerPreis == true) { fehlerGefunden = true; MessageBox.Show("'" + tbPreis.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } bool fehlerMaxTeilnehmer = c_Helper.numFormat(tbMaxTeilnehmer.Text /*, 3*/); if (fehlerMaxTeilnehmer == true) { fehlerGefunden = true; MessageBox.Show("'" + tbMaxTeilnehmer.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (dtpDatumVon.Value.Date > dtpDatumBis.Value.Date) { fehlerGefunden = true; MessageBox.Show("Von Datum kann nicht größer als Bis Datum sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (dtpUhrzeitVon.Value.TimeOfDay > dtpUhrzeitBis.Value.TimeOfDay) { fehlerGefunden = true; MessageBox.Show("Von Uhrzeit kann nicht größer als Bis Uhrzeit sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } // Fehlerüberprüfung Ende if (fehlerGefunden == true) { MessageBox.Show("Datensatz wurde nicht gespeichert", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (tbBezeichnung.Text.Trim().Length != 0 || cbKursleiter.SelectedIndex != -1 || tbPreis.Text.Trim().Length != 0 || tbMaxTeilnehmer.Text.Trim().Length != 0 || cbWochentag.SelectedIndex != -1) { // Anfang Datum Von und Bis an Wochentag anpassen DateTime myDateTimeVon = dtpDatumVon.Value.Date; DateTime myDateTimeBis = dtpDatumBis.Value.Date; String wochentag = c_Helper.umwandlungWochentagGerToEng(cbWochentag.Text); while (dtpDatumVon.Value.DayOfWeek.ToString() != wochentag) { myDateTimeVon = myDateTimeVon.AddDays(+1); if (myDateTimeVon.DayOfWeek.ToString() == wochentag) { dtpDatumVon.Value = myDateTimeVon.Date; break; } } while (dtpDatumBis.Value.DayOfWeek.ToString() != wochentag) { myDateTimeBis = myDateTimeBis.AddDays(-1); if (myDateTimeBis.DayOfWeek.ToString() == wochentag) { dtpDatumBis.Value = myDateTimeBis.Date; break; } } cbWochentag.Text = c_Helper.umwandlungWochentagEngToGer(wochentag); // Ende Datum Von und Bis an Wochentag anpassen c_DBConnect myConnection = new c_DBConnect(); int connected = myConnection.openConnection(); if (connected == 0) // Kein Fehler Connect { // Format für SQL anpassen String datumVon = dtpDatumVon.Value.ToString("yyyy-MM-dd"); String datumBis = dtpDatumBis.Value.ToString("yyyy-MM-dd"); String uhrzeitVon = dtpUhrzeitVon.Value.TimeOfDay.ToString().Substring(0, 5); String uhrzeitBis = dtpUhrzeitBis.Value.TimeOfDay.ToString().Substring(0, 5); String kursleiter = new String(cbKursleiter.Text.Where(c => Char.IsDigit(c)).ToArray()); String preis = tbPreis.Text.Replace(",", "."); String intWochentag = c_Helper.umwandlungWochentagInInt(c_Helper.umwandlungWochentagEngToGer(wochentag)).ToString(); // Abfrage String generieren String query = "INSERT INTO kurse (kursleiter_id, bezeichnung , preis, akt_teilnehmer, max_teilnehmer, datum_von, datum_bis, wochentag, " + "uhrzeit_von, uhrzeit_bis) VALUES (" + kursleiter + ", '" + tbBezeichnung.Text + "', " + preis + ", " + "0" + ", " + tbMaxTeilnehmer.Text + ", '" + datumVon + "', '" + datumBis + "', " + intWochentag + ", '" + uhrzeitVon + "', '" + uhrzeitBis + "');"; bool ok = myConnection.insert(query, "Kurs"); // SQL Befehl ausführen if (ok == true) // Kein Fehler { myConnection.closeConnection(); int connectedZwei = myConnection.openConnection(); if (connectedZwei == 0) // Kein Fehler Connect { // DridView aktualisieren myConnection.displayData("SELECT kurs_id, CONCAT('(', mitarbeiter_id,') ', vorname, ', ', nachname) " + "AS Kursleiter, bezeichnung, preis, akt_teilnehmer, max_teilnehmer, datum_von, datum_bis, wochentag, uhrzeit_von, uhrzeit_bis " + "FROM kurse k, mitarbeiter m WHERE k.kursleiter_id = m.mitarbeiter_id;", myGridKurse); myConnection.closeConnection(); // Headertexte anpassen DataTable gridKurseTable = (DataTable)(myGridKurse.DataSource); gridKurseTable.Columns["kurs_id"].ColumnName = "Kurs-ID"; gridKurseTable.Columns["bezeichnung"].ColumnName = "Bezeichnung"; gridKurseTable.Columns["preis"].ColumnName = "Preis"; gridKurseTable.Columns["akt_teilnehmer"].ColumnName = "Akt. Teilnehmer"; gridKurseTable.Columns["max_teilnehmer"].ColumnName = "Max. Teilnehmer"; gridKurseTable.Columns["datum_von"].ColumnName = "Datum Von"; gridKurseTable.Columns["datum_bis"].ColumnName = "Datum Bis"; gridKurseTable.Columns["wochentag"].ColumnName = "Wochentag"; gridKurseTable.Columns["uhrzeit_von"].ColumnName = "Uhrzeit Von"; gridKurseTable.Columns["uhrzeit_bis"].ColumnName = "Uhrzeit Bis"; c_Helper.changeColumnDataType(gridKurseTable, "Wochentag", typeof(String)); // Type von Wochentag ändern (int to string) myGridKurse.Columns["Wochentag"].DisplayIndex = 8; for (int i = 0; i < gridKurseTable.Rows.Count; i++) { String wert = c_Helper.umwandlungIntInWochentag(Convert.ToInt32(gridKurseTable.Rows[i]["Wochentag"])); gridKurseTable.Rows[i]["Wochentag"] = wert; } // Aktualisierten Inhalt binden (für die Suche) myBindingSourceKurse.DataSource = myGridKurse.DataSource; myGridKurse.DataSource = myBindingSourceKurse; DialogResult dialogResult = MessageBox.Show("Wollen Sie einen weiteren Kurs erfassen?", "Information", MessageBoxButtons.YesNo, MessageBoxIcon.Information); // Werte auf default setzen cbKursleiter.SelectedIndex = -1; cbWochentag.SelectedIndex = -1; tbBezeichnung.Text = ""; tbPreis.Text = ""; tbMaxTeilnehmer.Text = ""; DateTime today = DateTime.Now; dtpDatumVon.Value = today.Date; dtpDatumBis.Value = today.Date; dtpUhrzeitVon.Value = DateTime.Parse(today.TimeOfDay.ToString()); dtpUhrzeitBis.Value = DateTime.Parse(today.TimeOfDay.ToString()); if (dialogResult == DialogResult.No) { this.Close(); } } else // Fehler Connect { MessageBox.Show("Verbindungsfehler!\nÜbersicht konnte nicht aktualisiert werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error); } } myConnection.closeConnection(); } else // Fehler Connect { MessageBox.Show("Datenbankverbindung konnte nicht hergestellt werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else // Fehler leere Eingabe { DialogResult dialogResult = MessageBox.Show("Bitte füllen Sie alle Felder aus.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
/**************************************************************************/ /* private void btSpeichern_Click(object sender, EventArgs e) */ /**************************************************************************/ /* */ /**************************************************************************/ private void btSpeichern_Click(object sender, EventArgs e) { if (bearbeitenBool == true) { bool fehlerGefunden = false; // Fehlerüberprüfung Anfang bool fehlerBezeichnung = c_Helper.wrongCharNumberExtra(tbBezeichnung.Text /*, 100*/); if (fehlerBezeichnung == true) { fehlerGefunden = true; MessageBox.Show("'" + tbBezeichnung.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } bool fehlerPreis = c_Helper.numFormatPunktKomma(tbPreis.Text /*, 6*/); if (fehlerPreis == true) { fehlerGefunden = true; MessageBox.Show("'" + tbPreis.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } bool fehlerMaxTeilnehmer = c_Helper.numFormat(tbMaxTeilnehmer.Text /*, 3*/); if (fehlerMaxTeilnehmer == true) { fehlerGefunden = true; MessageBox.Show("'" + tbMaxTeilnehmer.Text + "' Bitte Eingabe überprüfen", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (Convert.ToInt32(tbAktTeilnehmer.Text) > Convert.ToInt32(tbMaxTeilnehmer.Text)) { fehlerGefunden = true; MessageBox.Show("Max. Teilnehmer kann nicht kleiner als Akt. Teilnehmer sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (dtpDatumVon.Value.Date > dtpDatumBis.Value.Date) { fehlerGefunden = true; MessageBox.Show("Von Datum kann nicht größer als Bis Datum sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } if (dtpUhrzeitVon.Value.TimeOfDay > dtpUhrzeitBis.Value.TimeOfDay) { fehlerGefunden = true; MessageBox.Show("Von Uhrzeit kann nicht größer als Bis Uhrzeit sein", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } // Fehlerüberprüfung Ende if (fehlerGefunden == true) { MessageBox.Show("Datensatz wurde nicht gespeichert", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { speichernBool = true; int rowIndex = myGridKurse.CurrentCell.RowIndex; if (myKurs.getKursleiter() != cbKursleiter.Text) { myKurs.setKursleiter(cbKursleiter.Text); myGridKurse.Rows[rowIndex].Cells["Kursleiter"].Value = cbKursleiter.Text; } if (myKurs.getBezeichnung() != tbBezeichnung.Text) { myKurs.setBezeichnung(tbBezeichnung.Text); myGridKurse.Rows[rowIndex].Cells["Bezeichnung"].Value = tbBezeichnung.Text; } if (myKurs.getPreis().ToString() != tbPreis.Text) { string newText = tbPreis.Text.Replace(".", ","); myKurs.setPreis(Math.Round(double.Parse(Convert.ToDecimal(newText).ToString()), 2)); myGridKurse.Rows[rowIndex].Cells["Preis"].Value = double.Parse(newText); tbPreis.Text = myKurs.getPreis().ToString("N2"); } if (myKurs.getMaxTeilnehmer().ToString() != tbMaxTeilnehmer.Text) { myKurs.setMaxTeilnehmer(int.Parse(tbMaxTeilnehmer.Text.ToString())); myGridKurse.Rows[rowIndex].Cells["Max. Teilnehmer"].Value = int.Parse(tbMaxTeilnehmer.Text); } if (myKurs.getDatumVon().Date != dtpDatumVon.Value.Date || myKurs.getDatumBis().Date != dtpDatumBis.Value.Date || c_Helper.umwandlungIntInWochentag(myKurs.getWochentag()) != cbWochentag.SelectedItem.ToString()) { DateTime myDateTimeVon = dtpDatumVon.Value.Date; DateTime myDateTimeBis = dtpDatumBis.Value.Date; String wochentag = c_Helper.umwandlungWochentagGerToEng(cbWochentag.Text); while (dtpDatumVon.Value.DayOfWeek.ToString() != wochentag) { myDateTimeVon = myDateTimeVon.AddDays(+1); if (myDateTimeVon.DayOfWeek.ToString() == wochentag) { dtpDatumVon.Value = myDateTimeVon.Date; break; } } while (dtpDatumBis.Value.DayOfWeek.ToString() != wochentag) { myDateTimeBis = myDateTimeBis.AddDays(-1); if (myDateTimeBis.DayOfWeek.ToString() == wochentag) { dtpDatumBis.Value = myDateTimeBis.Date; break; } } } if (myKurs.getDatumVon().Date != dtpDatumVon.Value.Date) { myKurs.setDatumVon(dtpDatumVon.Value.Date); myGridKurse.Rows[rowIndex].Cells["Datum Von"].Value = dtpDatumVon.Value.Date; } if (myKurs.getDatumBis().Date != dtpDatumBis.Value.Date) { myKurs.setDatumBis(dtpDatumBis.Value.Date); myGridKurse.Rows[rowIndex].Cells["Datum Bis"].Value = dtpDatumBis.Value.Date; } if (c_Helper.umwandlungIntInWochentag(myKurs.getWochentag()) != cbWochentag.SelectedItem.ToString()) { myKurs.setWochentag(c_Helper.umwandlungWochentagInInt(cbWochentag.Text)); myGridKurse.Rows[rowIndex].Cells["Wochentag"].Value = cbWochentag.Text; } if (myKurs.getUhrzeitVon().TimeOfDay != dtpUhrzeitVon.Value.TimeOfDay) { myKurs.setUhrzeitVon(DateTime.Parse(dtpUhrzeitVon.Value.TimeOfDay.ToString())); myGridKurse.Rows[rowIndex].Cells["Uhrzeit Von"].Value = dtpUhrzeitVon.Value.TimeOfDay; } if (myKurs.getUhrzeitBis().TimeOfDay != dtpUhrzeitBis.Value.TimeOfDay) { myKurs.setUhrzeitBis(DateTime.Parse(dtpUhrzeitBis.Value.TimeOfDay.ToString())); myGridKurse.Rows[rowIndex].Cells["Uhrzeit Bis"].Value = dtpUhrzeitBis.Value.TimeOfDay; } c_DBConnect myConnection = new c_DBConnect(); int connected = myConnection.openConnection(); if (connected == 0) { String preis = tbPreis.Text.Replace(",", "."); String datumVon = dtpDatumVon.Value.ToString("yyyy-MM-dd"); String datumBis = dtpDatumBis.Value.ToString("yyyy-MM-dd"); String uhrzeitVon = dtpUhrzeitVon.Value.TimeOfDay.ToString().Substring(0, 5); String uhrzeitBis = dtpUhrzeitBis.Value.TimeOfDay.ToString().Substring(0, 5); String kursleiter = new String(cbKursleiter.Text.Where(c => Char.IsDigit(c)).ToArray()); String kursID = myKurs.getKursId().ToString(); String wochentag = myKurs.getWochentag().ToString(); String query = "UPDATE kurse SET bezeichnung = '" + tbBezeichnung.Text + "', kursleiter_id = " + kursleiter + ", preis = " + preis + ", max_teilnehmer = " + tbMaxTeilnehmer.Text + ", datum_von = '" + datumVon + "', datum_bis = '" + datumBis + "', wochentag = " + wochentag + ", uhrzeit_von = '" + uhrzeitVon + "', uhrzeit_bis = '" + uhrzeitBis + "' WHERE kurs_id = " + kursID + ";"; bool ok = myConnection.update(query, "Kurs"); if (ok == true) { myGridKurse.Refresh(); cbKursleiter.Visible = false; dtpDatumVon.Visible = false; dtpDatumBis.Visible = false; cbWochentag.Visible = false; dtpUhrzeitVon.Visible = false; dtpUhrzeitBis.Visible = false; tbKursleiter.Visible = true; tbKursleiter.Text = myKurs.getKursleiter(); tbDatumVon.Visible = true; tbDatumVon.Text = myKurs.getDatumVon().Date.ToString("dd.MM.yyyy"); tbDatumBis.Visible = true; tbDatumBis.Text = myKurs.getDatumBis().Date.ToString("dd.MM.yyyy"); tbWochentag.Visible = true; tbWochentag.Text = c_Helper.umwandlungIntInWochentag(myKurs.getWochentag()); tbUhrzeitVon.Visible = true; tbUhrzeitVon.Text = myKurs.getUhrzeitVon().TimeOfDay.ToString("hh\\:mm"); tbUhrzeitBis.Visible = true; tbUhrzeitBis.Text = myKurs.getUhrzeitBis().TimeOfDay.ToString("hh\\:mm"); tbBezeichnung.ReadOnly = true; tbPreis.ReadOnly = true; tbMaxTeilnehmer.ReadOnly = true; tbWochentag.ReadOnly = true; tbUhrzeitVon.ReadOnly = true; tbUhrzeitBis.ReadOnly = true; speichernBool = false; bearbeitenBool = false; btBearbeiten.BackgroundImage = PuG_Verwaltungssoftware.Properties.Resources.pug_edit_groß; // Bild ändern } } else { MessageBox.Show("Datenbankverbindung konnte nicht hergestellt werden.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }