none
Aplicações em 3 camadas RRS feed

  • Pergunta

  • Bom dia pessoal,

    Estou desenvolvendo uma aplicação em 3 camadas usando C# mysql já tinha postadado algo aqui estou bem avançado, já consigo inserir registro no banco usando o sistema a ideia é seguinte tenho 3 camadas "Negocios, AcessaDados, Apresentacao", bom o que eu preciso agora é assim na camada acessadados tenho um classe onde tenho uma função para inserir registro o que eu quero que quando ele inserir um novo registro ele informe ao usuario na tela assim com se o usuario estiver cadastrado ele informe na tela tbm vou postar o metodo.

            public void IncluirIntinerario(Intinerario intinerario)
            {
                MySqlConnection CN = new MySqlConnection(Con);
                MySqlCommand Com = CN.CreateCommand();
                MySqlDataReader reader;
    
                string SQL = "SELECT * FROM tintinerario where intinerario = @intinerario";
                MySqlCommand cmd = new MySqlCommand(SQL, CN);
                cmd.Parameters.Add("@intinerario", MySqlDbType.VarChar).Value = intinerario;
    
                try
                {
                    CN.Open();
                    if (CN.State == ConnectionState.Open)
                    {
                        reader = cmd.ExecuteReader();
                        if (reader.Read())
                        {
                           // lblError = "Nome ja cadadastrada em nosso sistema !!";
                        }
                        else
                        {
                            reader.Close();
                            cmd.Dispose();
                            try
                            {
                                Com.CommandText = "INSERT INTO tintinerario (intinerario,motorista,horarios) Values(?intinerario,?motorista,?horarios)";
                                Com.Parameters.AddWithValue("?intinerario", intinerario.intinerario);
                                Com.Parameters.AddWithValue("?motorista", intinerario.motorista);
                                Com.Parameters.AddWithValue("?horarios", intinerario.horarios);
                                Com.ExecuteReader();
                                //lblError = "Nome ja cadadastrada em nosso sistema !!";
                            } catch (MySqlException ex) {
                                throw new ApplicationException(ex.ToString());
                            } finally {
                                CN.Close();
                            }                        
                        }
                    }
                }
                catch (MySqlException ex)
                {
                    throw new ApplicationException(ex.ToString());
                }
                finally
                {
                    CN.Close();
                }
            }

    quarta-feira, 6 de julho de 2016 12:53

Respostas

  • resolvi olha como ficou o metodo

            public string IncluirIntinerario(Intinerario intinerario)
            {
                string SQL = "SELECT * FROM tintinerarios where intinerarios = @intinerario and horarios = @horarios";
                MySqlCommand cmd = new MySqlCommand(SQL, con);
                cmd.Parameters.Add("@intinerario", MySqlDbType.VarChar).Value = intinerario.intinerario;
                cmd.Parameters.Add("@horarios", MySqlDbType.VarChar).Value = intinerario.horarios;
                
                try
                {
                    con.Open();
                    if (con.State == ConnectionState.Open)
                    {
                        reader = cmd.ExecuteReader();
                        if (reader.Read())
                        {
                            return "1";
                        }
                        else
                        {
                            reader.Close();
                            cmd.Dispose();
                            try
                            {
                                cmd.CommandText = "INSERT INTO tintinerarios (intinerarios,Motoristas,horarios) Values(?intinerarios,?Motoristas,?horarios)";
                                cmd.Parameters.AddWithValue("?intinerarios", intinerario.intinerario);
                                cmd.Parameters.AddWithValue("?Motoristas", intinerario.motorista);
                                cmd.Parameters.AddWithValue("?horarios", intinerario.horarios);
                                cmd.ExecuteReader();
                            } catch (MySqlException ex) {
                                throw new ApplicationException(ex.ToString());
                            } finally {
                                con.Close();
                            }                        
                        }
                    }
                    return "2";
                }
                catch (MySqlException ex)
                {
                    throw new ApplicationException(ex.ToString());
                }
                finally
                {
                    con.Close();
                }
            }
    a  chama
            protected void btnGravar_Click(object sender, EventArgs e)
            {
                IntinerarioDB newRegistro = new IntinerarioDB();
    
                Intinerario intinerarioReg = new Intinerario(txtIntinerario.Text, txtMotorista.Text, txtHorario.Text);
    
                //newRegistro.IncluirIntinerario(intinerarioReg);
                string resultado = newRegistro.IncluirIntinerario(intinerarioReg);
    
                if (resultado  == "")
                {
                    lblErros.Text = resultado;
                }
                else if (resultado == "1")
                {
                    lblErros.Text = "Intinerario já cadastrado";
                }
                else if (resultado == "2")
                {
                    lblErros.Text = "Intinerario cadastrado com sucesso";
                }
    
                txtIntinerario.Text = "";
                txtMotorista.Text = "";
                txtHorario.Text = "";
            }


    • Marcado como Resposta CLAUDIO JOSE quinta-feira, 7 de julho de 2016 14:38
    quinta-feira, 7 de julho de 2016 14:38

Todas as Respostas

  • Bom dia,

    Claudio, existe diversas formas de tratar a questão exemplificada. Você poderia criar uma classe "Request" e dentro dela inserir atributos tipo (sucesso:true ou false, mensagem, erro, etc).
    Outra maneira inclusive a mais simples seria você alterar o retorno do seu método "IncluirIntinerario" de "void" para "string", assim se der sucesso vc retorna uma string vazia (string.Empty) se der erro ou usuario cadastrado você retorna a mensagem. Se você sempre for mostrar a mensagem, basta retornar a string ex: "Usuário cadastrado com Sucesso", "Usuário ja cadastrado no banco", "Erro ao cadastrar usuário", etc. (sua criatividade).

    Espero ter ajudado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quarta-feira, 6 de julho de 2016 13:28
    quarta-feira, 6 de julho de 2016 13:28
  • se pode me ajudar com como fazer isso sou iniciante com c#
    quarta-feira, 6 de julho de 2016 13:46
  • resolvi olha como ficou o metodo

            public string IncluirIntinerario(Intinerario intinerario)
            {
                string SQL = "SELECT * FROM tintinerarios where intinerarios = @intinerario and horarios = @horarios";
                MySqlCommand cmd = new MySqlCommand(SQL, con);
                cmd.Parameters.Add("@intinerario", MySqlDbType.VarChar).Value = intinerario.intinerario;
                cmd.Parameters.Add("@horarios", MySqlDbType.VarChar).Value = intinerario.horarios;
                
                try
                {
                    con.Open();
                    if (con.State == ConnectionState.Open)
                    {
                        reader = cmd.ExecuteReader();
                        if (reader.Read())
                        {
                            return "1";
                        }
                        else
                        {
                            reader.Close();
                            cmd.Dispose();
                            try
                            {
                                cmd.CommandText = "INSERT INTO tintinerarios (intinerarios,Motoristas,horarios) Values(?intinerarios,?Motoristas,?horarios)";
                                cmd.Parameters.AddWithValue("?intinerarios", intinerario.intinerario);
                                cmd.Parameters.AddWithValue("?Motoristas", intinerario.motorista);
                                cmd.Parameters.AddWithValue("?horarios", intinerario.horarios);
                                cmd.ExecuteReader();
                            } catch (MySqlException ex) {
                                throw new ApplicationException(ex.ToString());
                            } finally {
                                con.Close();
                            }                        
                        }
                    }
                    return "2";
                }
                catch (MySqlException ex)
                {
                    throw new ApplicationException(ex.ToString());
                }
                finally
                {
                    con.Close();
                }
            }
    a  chama
            protected void btnGravar_Click(object sender, EventArgs e)
            {
                IntinerarioDB newRegistro = new IntinerarioDB();
    
                Intinerario intinerarioReg = new Intinerario(txtIntinerario.Text, txtMotorista.Text, txtHorario.Text);
    
                //newRegistro.IncluirIntinerario(intinerarioReg);
                string resultado = newRegistro.IncluirIntinerario(intinerarioReg);
    
                if (resultado  == "")
                {
                    lblErros.Text = resultado;
                }
                else if (resultado == "1")
                {
                    lblErros.Text = "Intinerario já cadastrado";
                }
                else if (resultado == "2")
                {
                    lblErros.Text = "Intinerario cadastrado com sucesso";
                }
    
                txtIntinerario.Text = "";
                txtMotorista.Text = "";
                txtHorario.Text = "";
            }


    • Marcado como Resposta CLAUDIO JOSE quinta-feira, 7 de julho de 2016 14:38
    quinta-feira, 7 de julho de 2016 14:38