Código C# de Cadastro de Alunos: Classes, DAO e Validações

Educação Artística13,32 KB

Classe AlunoVO

class AlunoVO
{
private int id; // > 0
private string nome; // obrigatório
private double mensalidade; // deve ser >= 0
private int cidadeId; // obrigatório >= 0
private DateTime dataNascimento; // não pode ser superior à data atual

public void SetId(int valor)
{
if (valor <= 0)
throw new Exception("Id do aluno não pode ser <= 0");
id = valor;
}

public int GetId()
{
return id;
}

public void SetNome(string valor)
{
if (valor.Trim().Length == 0)
throw new Exception("Informe o nome");
nome = valor;
}

public string GetNome()
{
return nome;
}


public double GetMensalidade()
{
return mensalidade;
}

public void SetMensalidade(double pMensalidade)
{
if (pMensalidade < 0)
throw new Exception("Mensalidade não pode ser negativa.");
else
mensalidade = pMensalidade;
}

public DateTime GetDataNascimento()
{
return dataNascimento;
}

public void SetDataNascimento(DateTime pData)
{
if (DateTime.Now.CompareTo(pData) < 0)
throw new Exception("Data inválida. O aluno nem nasceu ainda!");
dataNascimento = pData;
}

Classe AlunoDAO

class AlunoDAO
{
public static void Insere(AlunoVO aluno)
{
AlunoVO pesquisado = AlunoDAO.Consultar(aluno.GetId());
if (pesquisado != null)
throw new Exception("Este id de aluno já existe!");

string strMensalidade = aluno.GetMensalidade().ToString().Replace(',', '.');
string sql = string.Format("set dateformat dmy; " +
"Insert into alunos " +
"(id, nome, mensalidade, cidadeId, dataNascimento) " +
"values ({0}, '{1}', {2}, {3}, '{4}') ",
aluno.GetId(), aluno.GetNome(), strMensalidade,
aluno.GetCidadeId(), aluno.GetDataNascimento());
Metodos.ExecutaSQL(sql);
}

public static void Altera(AlunoVO aluno)
{
string strMensalidade = aluno.GetMensalidade().ToString().Replace(',', '.');
string sql = string.Format("set dateformat dmy; " +
"update alunos " +
"set nome = '{0}', mensalidade = {1}, cidadeId = {2}," +
"dataNascimento='{3}' where id = {4}",
aluno.GetNome(), strMensalidade,
aluno.GetCidadeId(), aluno.GetDataNascimento(),
aluno.GetId());
Metodos.ExecutaSQL(sql);
}

public static void Excluir(int id)
{
string sql = "delete alunos where id = " + id;
Metodos.ExecutaSQL(sql);
}

Métodos Auxiliares

public static DataTable ExecutaSelect(string select)
{
SqlConnection conexao = ConexaoBD.GetConexao();
try
{
SqlDataAdapter adapter = new SqlDataAdapter(select, conexao);
DataTable tabela = new DataTable();
adapter.Fill(tabela);

if (tabela.Rows.Count >= 1)
{
return tabela;
}
else
return null;
}
finally
{
conexao.Close();
}
}

Evento btnGravar_Click

private void btnGravar_Click(object sender, EventArgs e)
{
if (Metodos.ValidaInt(txtId.Text) == false)
{
MessageBox.Show("Número inválido!");
txtId.Focus();
return;
}

if (cbCidades.SelectedIndex == -1)
{
MessageBox.Show("Informe uma cidade!");
cbCidades.Focus();
return;
}

try
{
AlunoVO aluno = new AlunoVO();
aluno.SetId(Convert.ToInt32(txtId.Text));
aluno.SetNome(txtNome.Text);
aluno.SetMensalidade(Convert.ToDouble(txtMensalidade.Text));
aluno.SetCidadeId(Convert.ToInt32(cbCidades.SelectedValue));
aluno.SetDataNascimento(Convert.ToDateTime(txtData.Text));

if (txtId.Enabled)
AlunoDAO.Insere(aluno);
else
AlunoDAO.Altera(aluno);

Metodos.Mensagem("Gravado com sucesso!", Metodos.TipoMensagemEnum.informacao);
AlteraParaModo(modoOperacao.consulta);
}
catch (Exception erro)
{
Metodos.Mensagem(erro.Message, Metodos.TipoMensagemEnum.erro);
}
}

Classe Metodos

class Metodos
{

public static bool ValidaInt(string valor)
{
try
{
Convert.ToInt32(valor);
return true;
}
catch
{
return false;
}
}

public static bool ValidaData(string data)
{
try
{
Convert.ToDateTime(data);
return true;
}
catch
{
return false;
}
}

public static bool Mensagem(string mensagem, TipoMensagemEnum tipoDaMensagem)
{
if (tipoDaMensagem == TipoMensagemEnum.alerta)
{
MessageBox.Show(mensagem, "Atenção", MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return true;
}
else if (tipoDaMensagem == TipoMensagemEnum.erro)
{
MessageBox.Show(mensagem, "Erro", MessageBoxButtons.OK,
MessageBoxIcon.Error);
return true;
}
else if (tipoDaMensagem == TipoMensagemEnum.informacao)
{
MessageBox.Show(mensagem, "Informação", MessageBoxButtons.OK,
MessageBoxIcon.Information);
return true;
}
else
{
if (MessageBox.Show(mensagem, "Atenção", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes)
return true;
else
return false;
}
}

Baixar

PDF Word HTML