Usuário com melhor resposta
Aplicações em 3 camadas

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(); } }
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 chamaprotected 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
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
-
-
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 chamaprotected 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