Inquiridor
Usando camadas, como passar o resultado de variáveis?

Pergunta
-
Pessoal.
Estou precisando entender isso:
Na Minha aplicação BLL eu tenho:
private string _NomeUsuario;
public string NomeUsuario
{
get { return _NomeUsuario; }
set { _NomeUsuario = value; }
}
Na tela origem eu tenho:
Tb_View_LoginBll classBll = new Tb_View_LoginBll();
classBll.NomeUsuario = TabelaOrigem.NomeUsuario;
Estar correto? Como eu consigo pegar o conteúdo na tela de destino?
Agradeço
Todas as Respostas
-
Olá Itasouza, não entendi muito bem sua pergunta, mas de qualquer forma vou mostrar como trabalho com aplicações em camadas.
No meu caso, gosto de trabalhar em 3 níveis (camadas) que são as seguintes:
DAL - Acesso ao banco de dados;
BLL - interface (entre aplicação e acesso a dados);
MDL - modelo (usada pra transferência de variáveis entre camadas);
APP - a aplicação em sí.
a coisa funciona mais ou menos assim, vou dar um exemplo bem básico, tipo um cadastro de usuário e login;
a camada MDL:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MDL { public class sys_usuariosMDL { int id; string login, senha; public int ID { get { return id; } set { id = value; } } public string LOGIN { get { return login; } set { login = value; } } public string SENHA { get { return senha; } set { senha = value; } } }
já na camada DAL:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MDL; using MySql.Data.MySqlClient; using System.Data; namespace DAL { public static class sys_usuariosDAL { public static void InserirDAL(sys_usuariosMDL mdlLocal) { MySqlConnection con = StringConn.conn(); MySqlCommand sqlCom = null; try { sqlCom = new MySqlCommand("INSERT INTO nomedobanco.nomedatabela (id,login,senha) VALUES (@ID,@LOGIN,@SENHA);", con); sqlCom.Parameters["@ID"].Value = mdlLocal.ID; sqlCom.Parameters["@LOGIN"].Value = mdlLocal.LOGIN; sqlCom.Parameters["@SENHA"].Value = mdlLocal.SENHA; con.Open(); sqlCom.ExecuteNonQuery(); } catch (MySqlException erro) { throw erro; } finally { con.Close(); } } public static void AtualizarDAL(sys_usuariosMDL mdlLocal) { MySqlConnection con = StringConn.conn(); MySqlCommand sqlCom = null; try { sqlCom = new MySqlCommand("UPDATE nomedobanco.nomedatabela SET id = @ID,login = @LOGIN,senha = @SENHA", con); sqlCom.Parameters["@ID"].Value = mdlLocal.ID; sqlCom.Parameters["@LOGIN"].Value = mdlLocal.LOGIN; sqlCom.Parameters["@SENHA"].Value = mdlLocal.SENHA; con.Open(); sqlCom.ExecuteNonQuery(); } catch (MySqlException erro) { throw erro; } finally { con.Close(); } } public static void DeletarDAL(int id) { MySqlConnection con = StringConn.conn(); MySqlCommand sqlCom = null; try { sqlCom = new MySqlCommand("DELETE * FROM nomedobanco.nomedatabela WHERE id = " + id + ";", con); con.Open(); sqlCom.ExecuteNonQuery(); } catch (MySqlException erro) { throw erro; } finally { con.Close(); } } public static sys_usuariosMDL MostrarDAL(int id) { sys_usuariosMDL mdlLocal = new sys_usuariosMDL(); MySqlConnection con = StringConn.conn(); MySqlCommand sqlCom = new MySqlCommand("SELECT * FROM nomedobanco.nomedatabela WHERE id = " + id + ";", con); MySqlDataReader dr = null; try { con.Open(); dr = sqlCom.ExecuteReader(); while (dr.Read()) { mdlLocal.ID = Convert.ToInt16(dr["id"].ToString()); mdlLocal.LOGIN = dr["login"].ToString(); mdlLocal.SENHA = dr["senha"].ToString(); } return mdlLocal; } catch (MySqlException erro) { throw erro; } finally { con.Close(); } } public static DataTable ListarDAL() { MySqlConnection con = StringConn.conn(); MySqlCommand sqlCom = null; MySqlDataAdapter adt = null; DataTable dtb = null; try { sqlCom = new MySqlCommand("SELECT * FROM nomedobanco.nomedatabela;", con); adt = new MySqlDataAdapter(sqlCom); dtb = new DataTable(); adt.Fill(dtb); return dtb; } catch (MySqlException erro) { throw erro; } finally { con.Close(); } } } }
note que cada vez que tenho que passar informações (tanto pra inserção no banco, quanto para retorno de valores, utilizo o MDL que criei na sua devida camada);
na camada BLL (interface), teremos:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MDL; using DAL; using MySql.Data.MySqlClient; using System.Data; namespace BLL { public class sys_usuariosBLL { public static void InserirBLL(sys_usuariosMDL mdlLocal) { sys_usuariosMDL mdlLocalBLL = new sys_usuariosMDL(); try { sys_usuariosDAL.InserirDAL(mdlLocal); } catch (MySqlException erro) { throw erro; } } public static void AtualizarBLL(sys_usuariosMDL mdlLocal) { try { sys_usuariosDAL.AtualizarDAL(mdlLocal); } catch (MySqlException erro) { throw erro; } } public static void DeletarBLL(int id) { try { sys_usuariosDAL.DeletarDAL(id); } catch (MySqlException erro) { throw erro; } } public static sys_usuariosMDL MostrarBLL(int id) { sys_usuariosMDL mdlLocalBLL = new sys_usuariosMDL(); try { mdlLocalBLL = sys_usuariosDAL.MostrarDAL(id); } catch (MySqlException erro) { throw erro; } return mdlLocalBLL; } public static DataTable ListarBLL() { DataTable dtb = new DataTable(); try { dtb = sys_usuariosDAL.ListarDAL(); } catch (MySqlException erro) { throw erro; } return dtb; } } }
por fim, a aplicação.aspx:
<asp:Label ID="lblUsuario" runat="server" Text="Usuário"></asp:Label> <asp:TextBox ID="txtUsuario" runat="server"></asp:TextBox> <asp:Label ID="lblSenha" runat="server" Text="Senha"></asp:Label> <asp:TextBox ID="txtSenha" runat="server"></asp:TextBox> <asp:Button ID="btnInserir" runat="server" Text="Inserir" OnClick="btnInserir_Click" /> <asp:Button ID="btnAtualiza" runat="server" Text="Atualizar" OnClick="btnInserir_Click" /> <asp:Button ID="btnDeletar" runat="server" Text="Deletar" OnClick="btnInserir_Click" />
e no codebihind:
protected void btnInserir_Click(object sender, EventArgs e) { sys_usuariosMDL mdlLocal = new sys_usuariosMDL (); mdlLocal.USUARIO = txtUsuario.Text; mdlLocal.SENHA= txtSenha.Text; try { sys_usuariosBLL.InserirBLL(mdlLocal); } catch (Exception erro) { throw erro; } } protected void btnAtualizar_click(object sender, EventArgs e) { sys_usuariosMDL mdlLocal = new sys_usuariosMDL (); mdlLocal.USUARIO = txtUsuario.Text; mdlLocal.SENHA= txtSenha.Text; try { sys_usuariosBLL.AtualizarBLL(mdlLocal); } catch (Exception erro) { throw erro; } } protected void btnDeletar_click(object sender, EventArgs e) { sys_usuariosMDL mdlLocal = new sys_usuariosMDL (); mdlLocal.ID = int.Parse(Request.QueryString["id"].ToString()); //um exemplo mdlLocal.USUARIO = txtUsuario.Text; mdlLocal.SENHA= txtSenha.Text; try { sys_usuariosBLL.DeletarBLL(mdlLocal); } catch (Exception erro) { throw erro; } }
Acho que seria isso, estamos aí, qualquer coisa, prende o grito!
Se não conseguir vencer pelo talento, vença pelo esforço!
- Editado WagnerFigueiredo quinta-feira, 1 de agosto de 2013 05:06 erro ortográficos
- Sugerido como Resposta Alysson Queiroz terça-feira, 6 de agosto de 2013 14:43