public void Save(MySqlConnection con = null) { lock (ThreadLocker) { var conCreated = (con == null); if (conCreated) { con = Program.DatabaseManager.GetClient().GetConnection(); } //save the guild itself using (var cmd = con.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Guild_Save"; cmd.Parameters.Add(new MySqlParameter("@pID", ID)); cmd.Parameters.Add(new MySqlParameter("@pName", Name)); cmd.Parameters.Add(new MySqlParameter("@pPPassword", _Password)); cmd.Parameters.Add(new MySqlParameter("@pAllowGuildWar", AllowGuildWar)); cmd.Parameters.Add(new MySqlParameter("@pMessage", Message)); cmd.Parameters.Add(new MySqlParameter("@pMessageCreateTime", MessageCreateTime)); cmd.Parameters.Add(new MySqlParameter("@pMessageCreaterID", MessageCreater.ID)); cmd.ExecuteNonQuery(); } //save members foreach (var member in Members) { member.Save(con); } //save aka Academy.Save(con); if (conCreated) { con.Dispose(); } } }