private void btnFixstand_Click(object sender, EventArgs e) { //TODO: method unchecked Zeitpunkt reason = GetZeitpunkt(); var noteAdapter = new NoteTableAdapter(); var fixNoteAdapter = new BerechneteNoteTableAdapter(); var alleNotenDerSchule = fixNoteAdapter.GetData(); foreach (var note in alleNotenDerSchule) { fixNoteAdapter.Insert(note.SchnittMuendlich, note.SchnittSchulaufgaben, note.JahresfortgangMitKomma, note.JahresfortgangGanzzahlig, note.PruefungGesamt, note.SchnittFortgangUndPruefung, note.Abschlusszeugnis, (int)reason, true, note.SchuelerId, note.KursId, note.ErstesHalbjahr); } }
/// <summary> /// Synchronisiert die Excel-Datei mit der Datenbank. /// </summary> /// <param name="fileName">Der Dateiname.</param> public void Synchronize(string fileName) { if (OnStatusChange != null) { OnStatusChange(this, new StatusChangedEventArgs() { Status = "synchronisiere " + fileName }); } using (ExcelSheet sheet = new ExcelSheet(fileName)) { // erst mal schauen, ob der Kurs laut DB existiert. Todo: nächstes Jahr kursId verwenden! KursTableAdapter kursAdapter = new KursTableAdapter(); var kurse = kursAdapter.GetDataByBezeichnung(sheet.Kursbezeichnung); if (kurse.Count != 1) { kurse = kursAdapter.GetDataByBezeichnung(sheet.Fachname + " " + sheet.Kursbezeichnung); if (kurse.Count != 1) { if (OnStatusChange != null) { OnStatusChange(this, new StatusChangedEventArgs() { Status = "Fehler in Datei " + fileName + ": Kurs nicht oder mehrfach gefunden: " + sheet.Kursbezeichnung }); } } } int kursId = kurse[0].Id; using (NoteTableAdapter noteAdapter = new NoteTableAdapter()) using (BerechneteNoteTableAdapter berechneteNotenAdapter = new BerechneteNoteTableAdapter()) { DeleteAlteNoten(kursId, noteAdapter, berechneteNotenAdapter); foreach (var schueler in sheet.Schueler) { InsertNoten(kursId, noteAdapter, berechneteNotenAdapter, schueler); } if (OnStatusChange != null) { OnStatusChange(this, new StatusChangedEventArgs() { Status = "Noten sind eingetragen. Prüfe auf Änderungen an den Schülerdaten." }); } var alleSchueler = CheckSchueler(sheet, kursId); CheckLegastheniker(sheet, kursAdapter, kurse[0], alleSchueler); } } if (OnStatusChange != null) { OnStatusChange(this, new StatusChangedEventArgs() { Status = "Datei " + fileName + " erfolgreich gelesen" }); } }
private void LeseNotenAusDB() { diNoDataSet.NoteDataTable notenDT; notenDT = new NoteTableAdapter().GetDataBySchuelerAndKurs(schuelerId, kursId); foreach (var noteR in notenDT) { // Note note = new Note(noteR); noten[noteR.Halbjahr,noteR.Notenart].Add(noteR.Punktwert); } // Schnitte werden direkt gelesen diNoDataSet.BerechneteNoteDataTable bnotenDT; // liefert max. 2 Datensätze (einen für 1. und 2. Hj.), historische Stände werden nicht geliefert bnotenDT = new BerechneteNoteTableAdapter().GetDataBySchuelerAndKurs(kursId, schuelerId); foreach (var bnoteR in bnotenDT) { schnitte[(int)(bnoteR.ErstesHalbjahr ? Halbjahr.Erstes : Halbjahr.Zweites)] = new BerechneteNote(kursId, schuelerId, bnoteR); } }
public void writeToDB() { BerechneteNoteTableAdapter na = new BerechneteNoteTableAdapter(); na.Insert(SchnittMuendlich, SchnittSchulaufgaben, JahresfortgangMitKomma, JahresfortgangGanzzahlig, PruefungGesamt, SchnittFortgangUndPruefung, Abschlusszeugnis, 0, false, schuelerid, kursid, ErstesHalbjahr); }
/// <summary> /// Trägt die Noten eines Schülers aus Excel in die Datenbank ein. /// </summary> /// <param name="kursId">Die Id des Kurses.</param> /// <param name="noteAdapter">Der Note-Adapter.</param> /// <param name="berechneteNoteAdapter">Der Adapter für berechnete Noten.</param> /// <param name="schueler">Der Schüler (samt Noten dieses Kurses).</param> private static void InsertNoten(int kursId, NoteTableAdapter noteAdapter, BerechneteNoteTableAdapter berechneteNoteAdapter, Schueler schueler) { foreach (var note in schueler.Einzelnoten) { // trage alle Noten in die DB ein var noteId = 0; noteAdapter.Insert((int)note.Typ, note.Punktwert, DateTime.Now.Date, note.Zelle, (byte)note.Halbjahr, schueler.Id, kursId, out noteId); } berechneteNoteAdapter.Insert(schueler.BerechneteNotenErstesHalbjahr.SchnittMuendlich, schueler.BerechneteNotenErstesHalbjahr.SchnittSchulaufgaben, schueler.BerechneteNotenErstesHalbjahr.JahresfortgangMitKomma, schueler.BerechneteNotenErstesHalbjahr.JahresfortgangGanzzahlig, schueler.BerechneteNotenErstesHalbjahr.PruefungGesamt, schueler.BerechneteNotenErstesHalbjahr.SchnittFortgangUndPruefung, schueler.BerechneteNotenErstesHalbjahr.Abschlusszeugnis, (int)CheckReason.None, false, schueler.Id, kursId, true); berechneteNoteAdapter.Insert(schueler.BerechneteNoten.SchnittMuendlich, schueler.BerechneteNoten.SchnittSchulaufgaben, schueler.BerechneteNoten.JahresfortgangMitKomma, schueler.BerechneteNoten.JahresfortgangGanzzahlig, schueler.BerechneteNoten.PruefungGesamt, schueler.BerechneteNoten.SchnittFortgangUndPruefung, schueler.BerechneteNoten.Abschlusszeugnis, (int)CheckReason.None, false, schueler.Id, kursId, false); }
/// <summary> /// Löscht die alten Noten dieses Kurses aus der Datenbank (evtl. später nur Invalid setzen). /// </summary> /// <param name="kursId">Die Id des Kurses.</param> /// <param name="noteAdapter">Der Notenadapter.</param> /// <param name="berechneteNoteAdapter">Der Adapter für berechnete Noten.</param> private static void DeleteAlteNoten(int kursId, NoteTableAdapter noteAdapter, BerechneteNoteTableAdapter berechneteNoteAdapter) { foreach (var note in noteAdapter.GetDataByKursId(kursId)) { // lösche die Note noteAdapter.Delete(note.Id); } berechneteNoteAdapter.Delete(kursId); }
/// <summary> /// Löscht die alten Noten dieses Kurses aus der Datenbank /// </summary> private void DeleteAlteNoten() { NoteTableAdapter ta = new NoteTableAdapter(); ta.DeleteByKursId(kurs.Id); BerechneteNoteTableAdapter bta = new BerechneteNoteTableAdapter(); bta.DeleteByKursId(kurs.Id); }