//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);
     }
 }