public static bool create(Mitarbeiter a) { return(true); }
public static bool Create(Benutzer Neu, Gast gast, Mitarbeiter Ma, Studenten Stu, int State, string pw) { using (MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString)) { con.Open(); MySqlCommand countSQL = con.CreateCommand(); countSQL.CommandText = "Select Count(Nummer) From Benutzer ;"; MySqlDataReader r = countSQL.ExecuteReader(); //TODO r.Read(); int count = Int16.Parse(r["Count(Nummer)"].ToString()); int id = 20 + count; con.Close(); con.Open(); var tr = con.BeginTransaction(); try {// innerhalb der Connection con eine Transaktion beginnen using (MySqlCommand cmd = new MySqlCommand("", con)) { cmd.Transaction = tr; //BEnutzer cmd.CommandText = "INsert INTO `Benutzer` (`Nummer`, `Vorname`, `Nachname`, `E-Mail`, `Nutzername`, `LetzterLogin`, `Anlegedatum`, `Geburtsdatum`, `Salt`, `Hash`, `Aktiv`) VALUES" + " (@id, @Vornamne, @Nachname, @mail, @Username, null , @andate, @gbdate, @Salt, @hash, 0);"; cmd.Parameters.AddWithValue("id", id); cmd.Parameters.AddWithValue("Vornamne", Neu.Vorname); cmd.Parameters.AddWithValue("Nachname", Neu.Nachname); cmd.Parameters.AddWithValue("mail", Neu.E_Mail); cmd.Parameters.AddWithValue("Username", Neu.Nutzername); cmd.Parameters.AddWithValue("andate", DateTime.Now); cmd.Parameters.AddWithValue("gbdate", Neu.Geburtsdatum); string pwhasstring = PasswordSecurity.PasswordStorage.CreateHash(pw); string[] pwarray = pwhasstring.Split(':'); cmd.Parameters.AddWithValue("Salt", pwarray[3]); cmd.Parameters.AddWithValue("hash", pwarray[4]); int rows = cmd.ExecuteNonQuery(); // DML if (Neu.ISA == "Gast") { //gast cmd.CommandText = "INSERT INTO `Gäste` (ID , Grund , Ablaufdatum) Values (@id, @g, @dat); "; cmd.Parameters.AddWithValue("g", gast.Grund); cmd.Parameters.AddWithValue("dat", gast.Ablaufdatum); rows = cmd.ExecuteNonQuery(); } else { if (State == 1 || State == 3) { cmd.CommandText = "INSERT INTO `FHAngehörige` (`ID`) VALUES (@id);"; //params rows = cmd.ExecuteNonQuery(); //FH angehörige cmd.CommandText = "INSERT INTO `Student` (Matrikelnummer, Studiengang , ID) VALUES (@mat, @stugang, @id);"; //params cmd.Parameters.AddWithValue("mat", Stu.Matrikelnummer); cmd.Parameters.AddWithValue("stugang", Stu.Studiengang); rows = cmd.ExecuteNonQuery(); //student } if (State == 2 || State == 3) { if (State == 2) { cmd.CommandText = "INSERT INTO `FHAngehörige` (`ID`) VALUES (@id);"; //params rows = cmd.ExecuteNonQuery(); //FH angehörige } cmd.CommandText = "INSERT INTO `Mitarbeiter` (`büro`, Telefon , ID) VALUES ( @b, @T, @id); "; //params cmd.Parameters.AddWithValue("T", Ma.Telefon); cmd.Parameters.AddWithValue("b", Ma.Büro); rows = cmd.ExecuteNonQuery(); //MA } } // alle fehlerfrei? commit! tr.Commit(); // falls es Probleme gab } } catch (Exception e) { tr.Rollback(); string ex = e.Message; return(false); } } return(true); }