private void btnSalvar_Click(object sender, EventArgs e) { // Atualiza pesos e notas string[] notas = new string[dgvNotasPesos.RowCount]; float[] pesos = new float[dgvNotasPesos.RowCount]; for (int i = 0; i < dgvNotasPesos.RowCount; i++) { notas[i] = dgvNotasPesos.Rows[i].Cells["NomeNota"].Value.ToString(); pesos[i] = Convert.ToSingle(dgvNotasPesos.Rows[i].Cells["Peso"].Value); } new ExecutarDB().Executar("UPDATE materias SET notas = " + (notas.Length != 0 ? "'{\"" + String.Join("\", \"", notas) + "\"}', " : "NULL, ") + "pesos = " + (pesos.Length != 0 ? "'{" + String.Join("- ", pesos).Replace(',', '.').Replace('-', ',') + "}' " : "NULL ") + $"WHERE curso = '{cmbCurso.Text}' AND sigla = '{siglaMateria}'"); // Atualiza notas de cada aluno new ExecutarDB().Executar($"DELETE FROM notas WHERE curso = '{cmbCurso.Text}' AND materia = '{siglaMateria}'"); // Deleta todas as notas for (int l = 0; l < dgvNotasAlunos.RowCount; l++) { int idAluno = new ExecutarDB().ListarAlunos("id", "alunos", $"ra = '{dgvNotasAlunos["RA", l].Value}'")[0].ID; for (int n = 3; n < dgvNotasAlunos.ColumnCount; n++) // Cada nota { if (dgvNotasAlunos[n, l].Value != null) // Se existir uma nota { new ExecutarDB().Executar($"INSERT INTO notas VALUES ('{cmbCurso.Text}', {idAluno}, '{siglaMateria}', {n - 3}, {dgvNotasAlunos[n, l].Value})"); } } } btnCancelar_Click(null, null); }
// Inicia a alteração de uma matéria existente private void dgvMaterias_CellClick(object sender, DataGridViewCellEventArgs e) { // Configura botões e altera texto limparCampos(); Modo = "Alterar"; lblTitulo.Text = "Alterando Matéria " + dgvMaterias.Rows[e.RowIndex].Cells["Sigla"].Value; cmbCurso.Enabled = false; cmbDadosCurso.Enabled = false; gpbAlunos.Enabled = true; btnCancelar.Enabled = true; btnSalvar.Text = "Salvar"; btnSalvar.Enabled = true; btnExcluir.Enabled = true; for (int i = 0; i < cmbCurso.Items.Count; i++) { cmbDadosCurso.Items.Add(cmbCurso.Items[i]); } cmbFiltroProfessor_SelectedIndexChanged(null, null); // Preenche os campos com os dados da matéria // Dados cmbDadosCurso.SelectedIndex = cmbCurso.SelectedIndex; txtNome.Text = dgvMaterias.Rows[e.RowIndex].Cells["NomeMateria"].Value.ToString(); Materia materia = new ExecutarDB().ListarMaterias("*", "materias", $"curso = '{cmbDadosCurso.Text}' AND sigla = " + $"'{dgvMaterias.Rows[e.RowIndex].Cells["Sigla"].Value}'")[0]; txtSigla.Text = materia.Sigla; // Professor usuarios.Professor lecionador; if (materia.Lecionador != -1) { lecionador = new ExecutarDB().ListarProfessores("registro, rg, cpf, nome", "professores INNER JOIN usuarios ON user_id = usuarios.id", $"professores.id = {materia.Lecionador}")[0]; txtEntradaProfessor.Text = lecionador.Registro; lblProfessorRegistro.Text = "Registro: " + lecionador.Registro; lblProfessorRG.Text = "RG: " + lecionador.RG; lblProfessorCPF.Text = "CPF: " + lecionador.CPF; lblProfessorNome.Text = "Nome: " + lecionador.Nome; } // Alunos // por causa da atualização no cmbDadosCurso.SelectedIndex, os alunos já são resgatados // Marca quais alunos estão cursando essa matéria for (int i = 0; i < dgvAlunos.RowCount; i++) { foreach (int idEstudante in materia.Estudantes) { if (Convert.ToInt32(dgvAlunos.Rows[i].Cells["ID"].Value) == idEstudante) { dgvAlunos.Rows[i].Cells["Cursando"].Value = true; } } } }
private void cmbResultadosProfessor_SelectedIndexChanged(object sender, EventArgs e) { // Resgata dados do professor selecionado a partir do filtro e da entrada string filtro = cmbFiltroProfessor.SelectedItem.ToString().ToLower(); usuarios.Professor primeiroDaLista = new ExecutarDB().ListarProfessores("registro, rg, cpf, nome", "professores INNER JOIN usuarios ON user_id = usuarios.id", $"{filtro} = '{cmbResultadosProfessor.SelectedItem}'")[0]; lblProfessorRegistro.Text = "Registro: " + primeiroDaLista.Registro; lblProfessorRG.Text = "RG: " + primeiroDaLista.RG; lblProfessorCPF.Text = "CPF: " + primeiroDaLista.CPF; lblProfessorNome.Text = "Nome: " + primeiroDaLista.Nome; }
private void resgatarInfoCursos() { List <Curso> cursos = new ExecutarDB().ListarCursos("sigla, nome", "cursos", null); foreach (Curso curso in cursos) { lblNome.Text += "\n" + curso.Nome; lblAlunos.Text += "\n" + new ExecutarDB().Executar($"SELECT COUNT(id) FROM alunos WHERE curso = '{curso.Sigla}'"); lblMaterias.Text += "\n" + new ExecutarDB().Executar($"SELECT COUNT(sigla) FROM materias WHERE curso = '{curso.Sigla}'"); } gpbCursos.UseWaitCursor = false; }
private void resgatarAlunos() { dgvAlunos.Rows.Clear(); List <usuarios.Aluno> alunosDoCurso = new ExecutarDB().ListarAlunos("ra, nome, rg, cpf, alunos.id", "alunos INNER JOIN usuarios ON user_id = usuarios.id", $"curso = '{cmbDadosCurso.Text}' ORDER BY nome ASC"); foreach (usuarios.Aluno aluno in alunosDoCurso) { var novaLinha = dgvAlunos.Rows.Add(); dgvAlunos.Rows[novaLinha].Cells["Cursando"].Value = false; dgvAlunos.Rows[novaLinha].Cells["RA"].Value = aluno.RA; dgvAlunos.Rows[novaLinha].Cells["NomeAluno"].Value = aluno.Nome; dgvAlunos.Rows[novaLinha].Cells["RG"].Value = aluno.RG; dgvAlunos.Rows[novaLinha].Cells["CPF"].Value = aluno.CPF; dgvAlunos.Rows[novaLinha].Cells["ID"].Value = aluno.ID; } }
// Valida os dados inseridos private bool validarDados() { // Verifica se está vazio e troca a cor if (String.IsNullOrWhiteSpace(txtSigla.Text)) { txtSigla.BackColor = Color.FromArgb(255, 192, 192); } else { txtSigla.BackColor = SystemColors.Window; } if (String.IsNullOrWhiteSpace(txtNome.Text)) { txtNome.BackColor = Color.FromArgb(255, 192, 192); } else { txtNome.BackColor = SystemColors.Window; } if (String.IsNullOrWhiteSpace(txtSigla.Text) || String.IsNullOrWhiteSpace(txtNome.Text)) { MessageBox.Show(null, "Alguns dados necessários estão incompletos, por favor verificá-los", "Erro " + Modo.ToLower()); return(false); } // Verifica se já há outra matéria com a mesma sigla no mesmo curso List <Materia> m = new ExecutarDB().ListarMaterias("sigla, nome", "materias", $"curso = '{cmbDadosCurso.SelectedValue}' ORDER BY nome ASC"); for (int i = 0; i < m.Count; i++) { if (txtSigla.Text == m[i].Sigla && i != dgvMaterias.SelectedRows[0].Index) { MessageBox.Show(null, $"Já existe uma matéria com a sigla {txtSigla.Text} no curso " + $"{cmbDadosCurso.SelectedValue}:\n{m[i].Nome}.", "Erro ao criar matéria"); splitContainer.Enabled = true; return(false); } } return(true); }
private void Entrar() { string login = txtLogin.Text.Trim(); string senha = txtSenha.Text; if ((login == "" || login == "Email ou Usuário") && (senha == "" || senha == "Senha")) { MessageBox.Show("Por favor insira um login e senha!"); return; } else if (login == "" || login == "Email ou Usuário") { MessageBox.Show("Por favor insira um login!"); return; } else if (senha == "" || senha == "Senha") { MessageBox.Show("Por favor insira uma senha!"); return; } // Pesquisa no BD um usuário com o mesmo login/email e senha, // resgatando o primeiro usuário (deve sempre haver somente 1) // da lista retornada List <Usuario> usuario = new ExecutarDB().ListarUsuarios( "id, nome, tipo", "usuarios", $"(login = '******' AND senha = '{senha}') OR " + $"(email = '{login}' AND email IS NOT NULL AND senha = '{senha}')" ); if (usuario.Count != 0) // Se existe um usuário com esse login { infoLogin = new string[3] { usuario[0].Tipo, usuario[0].Nome, usuario[0].ID.ToString() }; // Marca qual Menu deve abrir Close(); // Fechar tela de login para abrir o FormMenu (no Program.cs) } else { MessageBox.Show("Login e/ou senha incorretos!"); } }
private void cmbMaterias_SelectedIndexChanged(object sender, EventArgs e) { btnCancelar_Click(null, null); // Reinicia os DataGridViews // Resgata os alunos, notas, pesos, notas dos alunos da matéria e preenche Materia materia = new ExecutarDB().ListarMaterias("sigla, notas, pesos, estudantes_id", "materias", $"curso = '{cmbCurso.Text}' AND nome = '{cmbMaterias.Text}'")[0]; siglaMateria = materia.Sigla; // Notas e pesos for (int i = 0; i < materia.Notas.Length; i++) { dgvNotasPesos.Rows.Add(materia.Notas[i], materia.Pesos[i], i); dgvNotasAlunos.Columns.Add(materia.Notas[i].Replace(' ', '_'), materia.Notas[i]); dgvNotasAlunos.Columns[materia.Notas[i].Replace(' ', '_')].Width = 50; } for (int i = 0; i < materia.Estudantes.Length; i++) { if (materia.Estudantes[i] == 0) { break; } // Alunos da matéria usuarios.Aluno estudante = new ExecutarDB().ListarAlunos("ra, nome", "alunos INNER JOIN usuarios ON user_id = usuarios.id", $"alunos.id = '{materia.Estudantes[i]}'")[0]; dgvNotasAlunos.Rows.Add(estudante.RA, estudante.Nome); // Notas dos alunos List <Nota> notasDoEstudante = new ExecutarDB().ListarNotas("num_nota, valor", "notas", $"curso = '{cmbCurso.Text}' AND estudante_id = '{materia.Estudantes[i]}' AND materia = '{siglaMateria}' ORDER BY num_nota ASC"); for (int j = 0; j < notasDoEstudante.Count; j++) { dgvNotasAlunos[notasDoEstudante[j].NumeroDaNota + 3, i].Value = notasDoEstudante[j].Valor; } } calcularMedia(); dgvNotasAlunos.Enabled = true; gpbNotasPesos.Enabled = true; btnSalvar.Enabled = true; btnCancelar.Enabled = true; }
private void cmbFiltroProfessor_SelectedIndexChanged(object sender, EventArgs e) { string filtro = cmbFiltroProfessor.SelectedItem.ToString().ToLower(); cmbResultadosProfessor.Items.Clear(); txtEntradaProfessor.Clear(); // Preenche cmbResultadosProfessor com uma lista de dados do tipo filtro de todos professores List <usuarios.Professor> professores = new ExecutarDB().ListarProfessores(filtro, $"professores INNER JOIN usuarios ON user_id = usuarios.id ORDER BY {filtro} ASC", null); switch (filtro) { case "registro": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.Registro); } break; case "rg": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.RG); } break; case "cpf": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.CPF); } break; case "nome": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.Nome); } break; } }
// Gerencia os campos que devem ser exibidos dependendo do tipo de usuário private void cmbTipoUsuario_SelectedIndexChanged(object sender, EventArgs e) { switch (cmbTipoUsuario.SelectedItem) { case "Administrador": gpbAluno.Enabled = false; gpbAluno.Visible = false; gpbProfessor.Enabled = false; gpbProfessor.Visible = false; gpbAdmin.Enabled = true; gpbAdmin.Visible = true; break; case "Aluno": gpbAdmin.Enabled = false; gpbAdmin.Visible = false; gpbProfessor.Enabled = false; gpbProfessor.Visible = false; gpbAluno.Enabled = true; gpbAluno.Visible = true; cmbCurso.Items.Clear(); List <Curso> siglas = new ExecutarDB().ListarCursos("sigla", "cursos", null); for (int i = 0; i < siglas.Count; i++) { cmbCurso.Items.Add(siglas[i].Sigla); } break; case "Professor": gpbAdmin.Enabled = false; gpbAdmin.Visible = false; gpbAluno.Enabled = false; gpbAluno.Visible = false; gpbProfessor.Enabled = true; gpbProfessor.Visible = true; break; } btnConfirmar.Enabled = true; }
public short Cadastrar() { // Pesquisa no BD se esse usuário já existe List <Admin> adminComLoginIgual = new ExecutarDB().ListarAdmins( "login, email", "usuarios", $"login = '******' OR email = '{Email}'"); if (adminComLoginIgual.Count != 0) // Se existe { if (Login == adminComLoginIgual[0].Login && Email == adminComLoginIgual[0].Email) { return(1); // Login e Email em uso } else if (Login == adminComLoginIgual[0].Login) { return(2); // Login em uso } else { return(3); // Email em uso } } // Insere uma nova linha na tabela usuarios int idCadastrado = int.Parse(new ExecutarDB().Executar( "INSERT INTO usuarios (login, senha, rg, cpf, email, nome, telefone, tipo) " + $"VALUES ('{Login}', '{Senha}', '{RG}', '{CPF}', '{Email}', '{Nome}'," + $" '{Telefone}', 'Administrador') " + "RETURNING id", 0)); // Insere uma nova linha na tabela administradores new ExecutarDB().Executar("INSERT INTO administradores (cargo, user_id) " + $"VALUES ('{Cargo}', {idCadastrado})"); return(0); // Usuário cadastrado }
public int Cadastrar() { // Pesquisa no BD se esse usuário já existe List <Aluno> alunoComLoginIgual = new ExecutarDB().ListarAlunos( "login, email", "usuarios", $"login = '******' OR email = '{Email}'"); if (alunoComLoginIgual.Count != 0) // Se existe { if (Login == alunoComLoginIgual[0].Login && Email == alunoComLoginIgual[0].Email) { return(1); // Login e Email em uso } else if (Login == alunoComLoginIgual[0].Login) { return(2); // Login em uso } else { return(3); // Email em uso } } // Insere uma nova linha na tabela usuarios int idCadastrado = int.Parse(new ExecutarDB().Executar( "INSERT INTO usuarios (login, senha, rg, cpf, email, nome, telefone, tipo) " + $"VALUES ('{Login}', '{Senha}', '{RG}', '{CPF}', '{Email}', '{Nome}', '{Telefone}', 'Aluno') " + "RETURNING id", 0)); // Insere uma nova linha na tabela professores new ExecutarDB().Executar( "INSERT INTO alunos (ra, curso, datamatricula, user_id) " + $"VALUES ('{RA}', '{Curso}', '{dataMatricula}', {idCadastrado})"); return(0); // Usuário cadastrado }
private void txtEntradaProfessor_TextChanged(object sender, EventArgs e) { cmbResultadosProfessor.Items.Clear(); string filtro = cmbFiltroProfessor.SelectedItem.ToString().ToLower(); string entrada = txtEntradaProfessor.Text; // Resgata os professores que correspondem a entrada do filtro inserido List <usuarios.Professor> professores; if (!String.IsNullOrWhiteSpace(entrada)) // Se estiver filtrando pela entrada { professores = new ExecutarDB().ListarProfessores(filtro, "professores INNER JOIN usuarios ON user_id = usuarios.id", $"{filtro} ILIKE '{entrada}%' ORDER BY {filtro} ASC"); } else { professores = new ExecutarDB().ListarProfessores(filtro, $"professores INNER JOIN usuarios ON user_id = usuarios.id ORDER BY {filtro} ASC", null); } switch (filtro) { case "registro": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.Registro); } break; case "rg": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.RG); } break; case "cpf": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.CPF); } break; case "nome": foreach (usuarios.Professor professor in professores) { cmbResultadosProfessor.Items.Add(professor.Nome); } break; } // Preenche os campos se há correspondentes e há uma entrada if (cmbResultadosProfessor.Items.Count != 0 && !String.IsNullOrWhiteSpace(entrada)) { cmbResultadosProfessor.SelectedIndex = 0; } else { // Limpar labels lblProfessorRegistro.Text = "Registro: "; lblProfessorRG.Text = "RG: "; lblProfessorCPF.Text = "CPF: "; lblProfessorNome.Text = "Nome: "; } }
// Cria ou atualiza uma matéria private void btnSalvar_Click(object sender, EventArgs e) { splitContainer.Enabled = false; if (!validarDados()) { splitContainer.Enabled = true; return; } // Resgata os dados que vão ser utilizados nas duas operações int idLecionador = -1; List <usuarios.Professor> lecionador = new ExecutarDB().ListarProfessores("professores.id", "professores INNER JOIN usuarios ON user_id = usuarios.id", $"{cmbFiltroProfessor.Text.ToLower()} = '{cmbResultadosProfessor.Text}'"); if (lecionador.Count != 0) { idLecionador = lecionador[0].ID; } MessageBox.Show(idLecionador.ToString()); string rowsEstudantes = ""; for (int i = 0; i < dgvAlunos.RowCount; i++) { // Adiciona apenas os alunos marcados na coluna Cursando if (Convert.ToBoolean(dgvAlunos.Rows[i].Cells["Cursando"].Value)) { rowsEstudantes += dgvAlunos.Rows[i].Cells["ID"].Value.ToString(); if (i != dgvAlunos.RowCount - 1) { rowsEstudantes += " "; } } } rowsEstudantes = rowsEstudantes.Trim(); int[] idsEstudantes = !String.IsNullOrWhiteSpace(rowsEstudantes) ? new int[rowsEstudantes.Split(' ').Length] : new int[0]; for (int i = 0; i < idsEstudantes.Length; i++) { idsEstudantes[i] = Convert.ToInt32(rowsEstudantes.Split(' ')[i]); } // Criando matéria if (Modo == "Criar") { // Resgata os outros dados necessários e insere na tabela materias da DB new ExecutarDB().Executar("INSERT INTO materias (curso, sigla, nome, lecionador_id, estudantes_id) VALUES " + $"('{cmbDadosCurso.Text}', '{txtSigla.Text}', '{txtNome.Text}', {(idLecionador == -1 ? "NULL" : idLecionador.ToString())}, " + (idsEstudantes.Length != 0 ? "'{" + String.Join(", ", idsEstudantes) + "}' " : "NULL ") + ")"); } else // Atualizando matéria { string oldSigla = dgvMaterias.SelectedRows[0].Cells["Sigla"].Value.ToString(); // Resgata os outros dados necessários e atualiza a linha na tabela materias da DB new ExecutarDB().Executar("UPDATE materias SET " + $"curso = '{cmbCurso.Text}', sigla = '{txtSigla.Text}', " + $"nome = '{txtNome.Text}', " + $"lecionador_id = {(idLecionador != -1 ? idLecionador.ToString() : "NULL")}, " + "estudantes_id = " + (idsEstudantes.Length != 0 ? "'{" + String.Join(", ", idsEstudantes) + "}' " : "NULL ") + $"WHERE curso = '{cmbDadosCurso.Text}' AND sigla = '{oldSigla}'"); Modo = "Criar"; } limparCampos(); foreach (Curso curso in new ExecutarDB().ListarCursos("sigla", "cursos", null)) { cmbDadosCurso.Items.Add(curso.Sigla); } cmbCurso_SelectedIndexChanged(null, null); cmbCurso.Enabled = true; splitContainer.Enabled = true; }
private void btnAlterar_Click(object sender, EventArgs e) { DataGridViewCellCollection celulas = // Resgata as células da linha da célula selecionada dgvResultados.Rows[dgvResultados.SelectedCells[0].RowIndex].Cells; FormCadastro formcadastro = new FormCadastro(); // A classe/colunas de Usuario não consegue guardar todos os atributos de um // Admin, Aluno ou Usuario, por isso é preciso resgatar do BD // os outros atributos e instanciar a classe especificada no Tipo if (cmbTipo.Text == "Todos Usuários") { int idSelecionado = Convert.ToInt16(celulas["ID"].Value); // ID de usuário switch (celulas["Tipo"].Value.ToString()) { case "Administrador": usuarios.Admin admin = new ExecutarDB().ListarAdmins( "cargo", "administradores", $"user_id = {idSelecionado}")[0]; admin.ID = idSelecionado; admin.Login = celulas["Login"].Value.ToString(); admin.Senha = celulas["Senha"].Value.ToString(); admin.RG = celulas["RG"].Value.ToString(); admin.CPF = celulas["CPF"].Value.ToString(); admin.Email = celulas["Email"].Value.ToString(); admin.Nome = celulas["Nome"].Value.ToString(); admin.Telefone = celulas["Telefone"].Value.ToString(); formcadastro = new FormCadastro(admin); break; case "Aluno": usuarios.Aluno aluno = new ExecutarDB().ListarAlunos( "ra, curso, datamatricula", "alunos", $"user_id = {idSelecionado}")[0]; aluno.ID = idSelecionado; aluno.Login = celulas["Login"].Value.ToString(); aluno.Senha = celulas["Senha"].Value.ToString(); aluno.RG = celulas["RG"].Value.ToString(); aluno.CPF = celulas["CPF"].Value.ToString(); aluno.Email = celulas["Email"].Value.ToString(); aluno.Nome = celulas["Nome"].Value.ToString(); aluno.Telefone = celulas["Telefone"].Value.ToString(); formcadastro = new FormCadastro(aluno); break; case "Professor": usuarios.Professor professor = new ExecutarDB().ListarProfessores( "registro, formacao", "professores", $"user_id = {idSelecionado}")[0]; professor.ID = idSelecionado; professor.Login = celulas["Login"].Value.ToString(); professor.Senha = celulas["Senha"].Value.ToString(); professor.RG = celulas["RG"].Value.ToString(); professor.CPF = celulas["CPF"].Value.ToString(); professor.Email = celulas["Email"].Value.ToString(); professor.Nome = celulas["Nome"].Value.ToString(); professor.Telefone = celulas["Telefone"].Value.ToString(); formcadastro = new FormCadastro(professor); break; } } // Resgata o tipo de usuário e instancia esse tipo com os dados switch (cmbTipo.Text) { case "Administradores": usuarios.Admin admin = new usuarios.Admin( celulas["Login"].Value.ToString(), celulas["Senha"].Value.ToString(), celulas["RG"].Value.ToString(), celulas["CPF"].Value.ToString(), celulas["Email"].Value.ToString(), celulas["Nome"].Value.ToString(), celulas["Telefone"].Value.ToString(), celulas["Cargo"].Value.ToString() ); admin.ID = new ExecutarDB().ListarUsuarios("user_id", "administradores", $"id = {celulas["ID"].Value.ToString()}")[0].ID; formcadastro = new FormCadastro(admin); break; case "Alunos": usuarios.Aluno aluno = new usuarios.Aluno( celulas["Login"].Value.ToString(), celulas["Senha"].Value.ToString(), celulas["RG"].Value.ToString(), celulas["CPF"].Value.ToString(), celulas["Email"].Value.ToString(), celulas["Nome"].Value.ToString(), celulas["Telefone"].Value.ToString(), celulas["RA"].Value.ToString(), celulas["Curso"].Value.ToString(), Convert.ToDateTime(celulas["dataMatricula"].Value) ); aluno.ID = new ExecutarDB().ListarUsuarios("user_id", "alunos", $"id = {celulas["ID"].Value.ToString()}")[0].ID; formcadastro = new FormCadastro(aluno); break; case "Professores": usuarios.Professor professor = new usuarios.Professor( celulas["Login"].Value.ToString(), celulas["Senha"].Value.ToString(), celulas["RG"].Value.ToString(), celulas["CPF"].Value.ToString(), celulas["Email"].Value.ToString(), celulas["Nome"].Value.ToString(), celulas["Telefone"].Value.ToString(), celulas["Registro"].Value.ToString(), celulas["Formacao"].Value.ToString() ); professor.ID = new ExecutarDB().ListarUsuarios("user_id", "professores", $"id = {celulas["ID"].Value.ToString()}")[0].ID; formcadastro = new FormCadastro(professor); break; } // Encontra o FormMenu pai e formata o novo FormCadastro para mostrar como MDI dele formcadastro.MdiParent = Application.OpenForms["FormMenu"]; formcadastro.Dock = DockStyle.Fill; //Hide(); formcadastro.TopMost = true; formcadastro.Show(); }