//Evento click botão salvar private void btnSalvar_Click(object sender, EventArgs e) { try { /*Aqui eu chamei a classe MCategoria que está na camada Modelo. Caso eu não chamasse ela aqui, eu não iria conseguir acessar * os atributos da classe. A classe está sendo instanciada pela varíavel modelo, que está guardando todos os atributos da * classe.*/ MSubCategoria modelo = new MSubCategoria(txtSubCatNome.Text, int.Parse(cbxCodCat.SelectedValue.ToString())); //Analisando se o usuário deseja atualizar ou salvar um novo registro if (btnSalvar.Text != "Atualizar") { BLLSubCategoria.Incluir(modelo); MessageBox.Show("Cadastro realizado com sucesso!"); } else { modelo.SubCategoriaCod = int.Parse(txtCodigo.Text); //Pegando o ID BLLSubCategoria.Alterar(modelo); MessageBox.Show("Cadastro alterado com sucesso!"); } LimpaTela(); } /* A mensagem de erro já está perfeita. Com esse método ele já idenifica o tipo de erro que está causando e retorna * para o usuário. Só precisa apenas aprimorar. Colocar um ícone e etc.*/ catch (Exception erro) { MessageBox.Show(erro.Message); } }
/* Aqui foi criada uma pequena restrição para o usuário*/ public static void Incluir(MSubCategoria modelo) { if (modelo.SubCategoriaNome.Trim().Length == 0) { throw new Exception("O nome da subcategoria é obrigatório!"); } //Para ficar tudo maiúsculo modelo.SubCategoriaNome = modelo.SubCategoriaNome.ToUpper(); DALSubCategoria.Incluir(modelo); }
/*Percebam que CodigoCategoria foi chamado aqui dentro, pois esta classe se relaciona com a classe categoria.*/ //Implementação do try para tratamento de erros, caso venha acontecer. public static void Incluir(MSubCategoria modelo) { try { using (var conn = ConexaoBD.AbrirConexao()) //Passando a string de conexão { conn.Open(); //Abrindo a conexão using (var comm = conn.CreateCommand()) //Criando o comando SQL { comm.CommandText = "Insert into subcategoria(categoria_cod, subCategoria_nome) values (@codigo, @nome); select @@IDENTITY;"; //Passando valores por parametro comm.Parameters.Add(new SqlParameter("@nome", modelo.SubCategoriaNome)); comm.Parameters.Add(new SqlParameter("@codigo", modelo.CategoriaCod)); //Executando o comando comm.ExecuteNonQuery(); } } } catch (Exception erro) { throw new Exception(erro.Message); } }
public static void Alterar(MSubCategoria modelo) { try { using (var conn = ConexaoBD.AbrirConexao()) //Passando a string de conexão { conn.Open(); //Abrindo a conexão using (var comm = conn.CreateCommand()) //Criando o comando SQL { comm.CommandText = "Update subcategoria set subCategoria_nome = @nome, categoria_cod = @codigo where subCategoria_cod = @subcodigo; "; //Passando valores por parametro comm.Parameters.Add(new SqlParameter("@nome", modelo.SubCategoriaNome)); comm.Parameters.Add(new SqlParameter("@subcodigo", modelo.SubCategoriaCod)); comm.Parameters.Add(new SqlParameter("@codigo", modelo.CategoriaCod)); //Executando o comando comm.ExecuteNonQuery(); } } } catch (Exception erro) { throw new Exception(erro.Message); } }