// CRUD - Methoden start public static Benutzer Create(Connector connector, string login_name, string email_adresse, string passwort, uint rollen_nr) { string tabellenName; switch (rollen_nr) { case 1: tabellenName = "T_Admins"; break; case 2: tabellenName = "T_Dozenten"; break; case 3: tabellenName = "T_Schueler"; break; default: // TODO besser als Check-Constraint in der DB realisieren throw new UnsupportedRoleException(); } MySqlConnection connection = connector.Connection; connection.Open(); string query = String.Format("INSERT INTO T_Benutzer (`login_name`,`email_adresse`, `passwort`, `fk_rolle_nr`) VALUES ('{0}', '{1}', PASSWORD('{2}'), '{3}' );", login_name, email_adresse, passwort, rollen_nr); connector.ExecuteNonQuery(query); query = "SELECT p_benutzer_nr FROM T_Benutzer WHERE login_name='" + login_name + "';"; uint benutzer_nr = (uint)connector.ExecuteScalar(query); query = "INSERT INTO `" + tabellenName + "` (`p_f_benutzer_nr`) VALUES (" + benutzer_nr + ");"; connector.ExecuteNonQuery(query); // das muss eventuel aus einer globalen Konfiguration gelesen werden uint[] kapazitaet = { 10, 20, 30, 40, 50 }; // Karten uint[] anzahlWiederholungen = { 3, 2, 1, 0, 0 }; uint[] wiederholungsspanne = { 1, 2, 5, 10, 14 }; // Tage for (int i = 0; i < 5; i++) { query = "INSERT INTO T_Faecher (kapazitaet, anzahl_wiederholungen, wiederholungs_zeitspanne, f_benutzer_nr ) VALUES ('{0}', '{1}', '{2}', '{3}');"; query = String.Format(query, kapazitaet[i], anzahlWiederholungen[i], wiederholungsspanne[i], benutzer_nr); uint nummer_neues_fach = (uint)connector.ExecuteNonQuery(query); } connector.Connection.Close(); return(Read(connector, benutzer_nr)); }