private void LeseKlassenleiter() { KlasseTableAdapter ta = new KlasseTableAdapter(); Worksheet s = xls.workbook.Worksheets[1]; //Worksheet s = wb.ActiveSheet; int zeile=2; string kuerzel, klasse; int lehrerid; kuerzel = (string)(s.Cells[zeile,3].Value); klasse = (string)(s.Cells[zeile,4].Value); while (kuerzel!=null) { if (klasse!=null) { LehrerListe.TryGetValue(kuerzel,out lehrerid); var dt = ta.GetDataByBezeichnung(klasse); if (dt.Count>0) { var klassenRow = dt[0]; klassenRow.KlassenleiterId = lehrerid; ta.Update(klassenRow); } } zeile++; kuerzel = (string)(s.Cells[zeile,3].Value); klasse = (string)(s.Cells[zeile,4].Value); } }
/// <summary> /// Sucht die ID der Klasse in der Datenbank. Versucht auch zu beurteilen, ob es sich überhaupt um eine echte Klasse handelt. /// Legt auch Klassen ggf. selbstständig in der Datenbank an. /// </summary> /// <param name="klasseTableAdapter">Der Table Adapter für Klassen.</param> /// <param name="klasse">Die Klassenbezeichnung.</param> /// <returns>Die Id der Klasse oder -1 falls die Klasse ungültig ist.</returns> private static int GetKlasseId(KlasseTableAdapter klasseTableAdapter, string klasse) { var klasseDBresult = klasseTableAdapter.GetDataByBezeichnung(klasse); if (klasseDBresult.Count == 1) { return klasseDBresult[0].Id; } else { // -N : Klassen für kommendes Jahr // AHR, FHR: Klassen des vergangenen Jahres // Abm: Abmeldungen // Ex, Import: ? if (klasse.EndsWith("-N") || klasse.Contains("AHR") || klasse.Contains("FHR") || klasse.Contains("Abm") || klasse.Equals("Ex") || klasse.Equals("Import")) { return -1; } else { klasseTableAdapter.Insert(klasse); var neueKlasse = klasseTableAdapter.GetDataByBezeichnung(klasse); return neueKlasse[0].Id; } } }
/// <summary> /// Sucht eine Klasse in der Datenbank. Wenn nicht gefunden, kann sie neu angelegt werden. /// </summary> /// <param name="aklasse">Die Klassenbezeichnung.</param> /// <param name="createIfNotFound">True wenn die Klasse ggf. auch neu angelegt werden darf.</param> /// <returns>Die Zeile der Klasse in der Datenbank oder null wenn nicht gefunden.</returns> public static diNoDataSet.KlasseRow FindOrCreateKlasse(string aklasse, bool createIfNotFound) { // suche die Klasse in der Datenbank. Wenn neu => anlegen using (var klAdapter = new KlasseTableAdapter()) { var klasse = klAdapter.GetDataByBezeichnung(aklasse); if (klasse.Count == 0) { if (createIfNotFound) { new KlasseTableAdapter().Insert(aklasse); } else { return null; } } return new KlasseTableAdapter().GetDataByBezeichnung(aklasse)[0]; } }