private void Funcionarios_Load(object sender, EventArgs e) { // Load grupos disciplinares loadGruposDisciplinares(); // Execute SQL query //SqlCommand cmd = new SqlCommand("SELECT Pessoa.NMec, Pessoa.nome, Pessoa.telemovel, Funcionario.Salario, GrupoDisciplinar.nome AS grupoDisciplinarNome, GrupoDisciplinar.num AS grupoDisciplinarNum, CONCAT(email, '@', dominio) AS emailComposed FROM((( (GestaoEscola.Docente JOIN GestaoEscola.Funcionario ON Docente.NMec = Funcionario.PNMec) JOIN GestaoEscola.Pessoa ON Docente.NMec = Pessoa.NMec) JOIN GestaoEscola.EmailDominio ON Pessoa.emailDominio = EmailDominio.id) JOIN GestaoEscola.GrupoDisciplinar ON Docente.grupoDisciplinar = GrupoDisciplinar.num)", cn); SqlCommand cmd = new SqlCommand("SELECT * FROM vw_Docentes", cn); SqlDataReader reader = cmd.ExecuteReader(); // Create list of Objects given the query results List <Funcionario> docentes = new List <Funcionario>(); while (reader.Read()) { Docente f = new Docente(); f.nmec = Int32.Parse(reader["NMec"].ToString()); f.nome = reader["nome"].ToString(); f.salario = Double.Parse(reader["salario"].ToString()); f.telemovel = Int32.Parse(reader["telemovel"].ToString()); f.email = reader["emailComposed"].ToString(); f.grupoDisciplinar = getGrupoDisciplinar(Int32.Parse(reader["grupoDisciplinar"].ToString())); docentes.Add(f); counter++; } // ObjectListView // Add Objects to list view listObjects.SetObjects(docentes); // Update stats updateStats(); // Close reader reader.Close(); }
public void clone(Docente d) { base.clone(d); // base is same as super in Java this.grupoDisciplinar = d.grupoDisciplinar; }
private void submitForm(Docente docente) { bool edit = (docente != null); // Get form data int nmec = Int32.Parse(panelFormFieldNMec.Text); String nome = panelFormFieldNome.Text; Double salario = Double.Parse(panelFormFieldSalario.Text); int telemovel = Int32.Parse(panelFormFieldContacto.Text); String emailPrefixo = panelFormFieldEmail.Text.Split('@')[0]; String emailDominio = panelFormFieldEmail.Text.Split('@')[1]; GrupoDisciplinar grupoDisciplinar = getGrupoDisciplinar(panelFormFieldGrupoDisciplinar.Text); // Create command String commandText = "pr_Docentes"; SqlCommand command = new SqlCommand(commandText, cn); command.CommandType = CommandType.StoredProcedure; // Add vars command.Parameters.Add("@NMec", SqlDbType.Int); command.Parameters["@NMec"].Value = nmec; command.Parameters.Add("@Nome", SqlDbType.VarChar); command.Parameters["@Nome"].Value = nome; command.Parameters.Add("@Telemovel", SqlDbType.Int); command.Parameters["@Telemovel"].Value = telemovel; command.Parameters.Add("@Email", SqlDbType.VarChar); command.Parameters["@Email"].Value = emailPrefixo; command.Parameters.Add("@EmailDominio", SqlDbType.VarChar); command.Parameters["@EmailDominio"].Value = emailDominio; command.Parameters.Add("@Salario", SqlDbType.Money); command.Parameters["@Salario"].Value = salario; command.Parameters.Add("@GrupoDisciplinar", SqlDbType.Int); command.Parameters["@GrupoDisciplinar"].Value = grupoDisciplinar.num; command.Parameters.Add("@Edit", SqlDbType.Bit); command.Parameters["@Edit"].Value = 0; if (edit) { command.Parameters["@Edit"].Value = 1; } // Return value stuff var returnParameter = command.Parameters.Add("@ReturnVal", SqlDbType.Int); returnParameter.Direction = ParameterDirection.ReturnValue; // Execute query int rowsAffected = 0; int returnValue; try { rowsAffected = command.ExecuteNonQuery(); returnValue = (int)returnParameter.Value; Console.WriteLine(String.Format("rowsAffected {0}", rowsAffected)); } catch (SqlException ex) { String errorMessage = "Ocorreu um erro, verifique que preencheu todos os dados corretamente e tente novamente!"; for (int i = 0; i < ex.Errors.Count; i++) { if (ex.Errors[i].Message.IndexOf("Já existe uma pessoa com o email", StringComparison.OrdinalIgnoreCase) >= 0) { errorMessage = ex.Errors[i].Message; break; } if (ex.Errors[i].Message.IndexOf("Já existe uma pessoa com o número de telemóvel fornecido", StringComparison.OrdinalIgnoreCase) >= 0) { errorMessage = ex.Errors[i].Message; break; } } MessageBox.Show( errorMessage + "\r\n\r\n" + ex.ToString(), "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error ); return; } // If query is successful if (returnValue == 1) { // If add operation, construct object (was null) if (!edit) { docente = new Docente(); } docente.nmec = nmec; docente.nome = nome; docente.email = emailPrefixo + "@" + emailDominio; docente.telemovel = telemovel; docente.salario = salario; docente.grupoDisciplinar = grupoDisciplinar; if (!edit) { listObjects.AddObject(docente); } // SHow feedback to user String successMessage = "O docente foi adicionado com sucesso!"; if (edit) { successMessage = "O docente foi editado com sucesso"; } MessageBox.Show( successMessage, "Sucesso!", MessageBoxButtons.OK, MessageBoxIcon.Information ); // Update objects displayed on interface listObjects.BuildList(true); // Update stats updateStats(); // Hide panels panelForm.Visible = false; panelObject.Visible = false; } else { String messageError = "Ocorreu um erro, verifique que preencheu todos os dados corretamente e tente novamente!"; if (returnValue == -2) { messageError = "Já existe uma pessoa na base de dados com esse número mecanográfico!"; } else if (returnValue == -3 || returnValue == -4) { messageError = "Ocorreu um erro interno na base de dados! Tente novamente."; } MessageBox.Show( messageError, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error ); } }