none
Problemas de Iniciante RRS feed

  • Pergunta

  • Pessoal, estou desenvolvendo uma pagina no VS 2008 com o C#

    tenho uma pagina para alteraçao de senha do usuario, o acesso a base SQL eu já consigo, ate mesmo ja faço o login pela base, porem estou tentando criar uma classe Usuario para que seja acessaso pela pagina de alteracao da senha, porem nao consigo acessar o metodo de alterar feito na classe Usuario, segue abaixo a minha pagina aspx e a minha classe, peço que me indiquem qual a instruçao que devo colocar para acessar o metodo.

    CLASSE USUARIO

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.Sql;
    using System.Configuration;
    
    
    namespace ClassLibrary.Usuario
    {
        public class Usuario
        {
            #region Atributos
            private string _LoginUsuario;
            private int _CodigoPessoa;
            private string _Nome;
            private string _Senha;
            private string _OutrasInformacoes;
            private string _Situacao;
            private DateTime _UltimoLogin;
            private string _AlteracaoUsuario;
            private DateTime _AlteracaoDataHora;
    
            /// <summary>
            /// Conexao com o banco de dados
            /// </summary>
            private SqlConnection conexao;
    
            /// <summary>
            /// Query a ser executada no banco de dados
            /// </summary>
            private SqlCommand comando;
            #endregion
    
            #region  Stored Procedures
            private const string SPINSERT = "InsUsuario";
            private const string SPUPDATE = "AltUsuario";
            private const string SPDELETE = "DelUsuario";
            private const string SPSELECT = "SelUsuario";
            #endregion
    
            #region Propriedades
            public string LoginUsuario
            {
                get { return this._LoginUsuario; }
                set { this._LoginUsuario = value; }
            }
    
            public int CodigoPessoa
            {
                get { return this._CodigoPessoa; }
                set { this._CodigoPessoa = value; }
            }
    
            public string Nome
            {
                get { return this._Nome; }
                set { this._Nome = value; }
            }
    
            public string Senha
            {
                get { return this._Senha; }
                set { this._Senha = value; }
            }
    
            public string OutrasInformacoes
            {
                get { return this._OutrasInformacoes; }
                set { this._OutrasInformacoes = value; }
            }
    
            public string Situacao
            {
                get { return this._Situacao; }
                set { this._Situacao = value; }
            }
    
            public DateTime UltimoLogin
            {
                get { return this._UltimoLogin; }
                set { this._UltimoLogin = value; }
            }
    
            public string AlteracaoUsuario
            {
                get { return this._AlteracaoUsuario; }
                set { this._AlteracaoUsuario = value; }
            }
    
            #endregion
    
            #region  Construtores
    
            public Usuario()
            {
                this.conexao = new SqlConnection(ConfigurationSettings.AppSettings["mitConn"]);
            }
    
            public Usuario(int CodigoPessoa, string Nome, string Senha,
                           string OutrasInformacoes, string Situacao, DateTime UltimoLogin,
                           string AlteracaoUsuario, DateTime AlteracaoDataHora)
            {
                this._CodigoPessoa = CodigoPessoa;
                this._Nome = Nome;
                this._Senha = Senha;
                this._OutrasInformacoes = OutrasInformacoes;
                this._Situacao = Situacao;
                this._UltimoLogin = UltimoLogin;
                this._AlteracaoUsuario = AlteracaoUsuario;
                this._AlteracaoDataHora = AlteracaoDataHora;
            }
            #endregion
    
            #region Metodos
    
            public void atualizar(Usuario usuario)
            {
                if (usuario != null)
                {
                    string comandoSQL = "UPDATE Usuario " +
                           "SET Senha = '" + usuario._Senha + "'" +
                           "WHERE LoginUsuario = '" + usuario._LoginUsuario + "'";
    
                    this.comando = new SqlCommand(comandoSQL, conexao);
                    try
                    {
                        this.conexao.Open();
                        this.comando.ExecuteNonQuery();
                    }
                    catch (Exception excecao)
                    {
                        Console.WriteLine(excecao);
                    }
                    finally
                    {
                        this.conexao.Close();
                    }
                }
            }
    
            #endregion
        }
    }
    


    PAGINA ASPX DA ALTERACAO DE SENHA

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using ClassLibrary.Usuario;
    
    namespace WebApplication
    {
        public partial class usuario_alterarSenha : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["usuario"] == null)
                {
                    Response.Write("<script>window.parent.location.href('login.aspx');</script>");
                }
            }
    
            protected void btn_alterar_Click(object sender, ImageClickEventArgs e)
            {
                if (Page.IsValid)
                {
                    // qual a instrucao que devo colocar aqui para chamar o metodo atualizar
                }
            }
        }
    }
    

    HTML DA PAGINA

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="usuario_alterarSenha.aspx.cs" Inherits="WebApplication.usuario_alterarSenha" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>TimeSheetWeb .: Echo Informática :.</title>
        <meta name="vs_snapToGrid" content="True">
    	<meta name="vs_showGrid" content="True">
    	<meta name="vs_defaultClientScript" content="JavaScript">
    		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    		<link rel="stylesheet" type="text/css" href="Style.css">
    	<style type="text/css">
            .style1
            {
                width: 166px;
            }
        </style>
    	</HEAD>
    	<body MS_POSITIONING="GridLayout" background="imagens/fundo_quadrado.jpg" onload="document.Form1.txt_senhaAtual.focus();">
    		<form id="Form1" method="post" runat="server">
    			<TABLE id="Table1" style="Z-INDEX: 108; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1"
    				cellPadding="1" width="100%" border="0">
    				<TR>
    					<TD align="center">
    						<asp:Label id="Label4" runat="server" CssClass="font2">Alterar Senha</asp:Label></TD>
    				</TR>
    				<TR>
    					<TD height="15"></TD>
    				</TR>
    				<TR>
    					<TD align="center">
    						<TABLE id="Table2" cellSpacing="8" cellPadding="1" width="190" border="0">
    							<TR>
    								<TD class="style1">
    									<asp:Label id="Label1" runat="server" CssClass="font1">Senha Atual</asp:Label><br>
    									<asp:TextBox id="txt_senhaAtual" tabIndex="1" runat="server" CssClass="textbox2" TextMode="Password"
    										Width="136px"></asp:TextBox>
                                    </TD>
    							</TR>
    							<TR>
    								<TD class="style1">
    									<asp:Label id="Label2" runat="server" CssClass="font1">Nova Senha</asp:Label><br>
    									<asp:TextBox id="txt_novaSenha" runat="server" TextMode="Password" CssClass="textbox2"
    										Width="136px"></asp:TextBox>
                                    </TD>
    							</TR>
    							<TR>
    								<TD class="style1">
    									<asp:Label id="Label3" runat="server" CssClass="font1">Confirmar Nova Senha</asp:Label>
    									<asp:TextBox id="txt_confirmarNovaSenha" runat="server" TextMode="Password" CssClass="textbox2"
    										Width="136px"></asp:TextBox>
    								</TD>
    							</TR>
    							<TR>
    								<TD height="6" class="style1"></TD>
    							</TR>
    							<TR>
    								<TD align="left" style="text-align: center" class="style1">
    									<asp:ImageButton id="btn_alterar" tabIndex="4" runat="server" 
                                            ImageUrl="imagens/botao_alterar.gif" onclick="btn_alterar_Click" 
                                            style="text-align: center"></asp:ImageButton></TD>
    							</TR>
    							<TR>
    								<TD align="center" class="style1">
    									<asp:ValidationSummary id="ValidationSummary1" runat="server" ShowSummary="False" ShowMessageBox="True"
    										Width="152px" ForeColor=" "></asp:ValidationSummary></TD>
    							</TR>
    						</TABLE>
    					</TD>
    				</TR>
    			</TABLE>
    		</form>
    	</body>
    </HTML>
    terça-feira, 22 de setembro de 2009 14:37

Todas as Respostas

  • Olá Wagner,

    o ideal neste caso era que vc criasse uma classe específica para as operações de banco (camada de acesso a dados) e outra para seu usuário (camada de domínio) assim vc teria separada as operações. Cada camada tomando conta da sua finalidade.

    Mas vc continuando da forma que vc está fazendo seu código ficaria da seguinte forma:

    if (Page.IsValid)
    {
    // qual a instrucao que devo colocar aqui para chamar o metodo atualizar
    Usuario usuario = Session["usuario"]
    if (usuario != null)
    {
    usuario.atualizar(usuario);
    }
    }
    Vc criando uma classe para cada camada vc poderia ter (existem outras formas de implementar):

    if (Page.IsValid)
    {
    // qual a instrucao que devo colocar aqui para chamar o metodo atualizar
    Usuario usuario = Session["usuario"]
    if (usuario != null)
    {
    UsuarioDAO dao = new UsuarioDAO();
    usuario.atualizar(usuario);
    }
    }
    Vc pode encontrar mais infos em:

    http://www.macoratti.net/aspn_cam.htm

    Abs,

    sopa
    • Sugerido como Resposta Ari C. Raimundo terça-feira, 22 de setembro de 2009 17:26
    terça-feira, 22 de setembro de 2009 16:40
  • Ari;

        da forma que foi colocado acima nao funcionou, entao fiz uma adapatação no codigo e ficou da seguinte forma

    if (Page.IsValid)
                {
                    Usuario usuario = (Usuario) Session["usuarioUpdate"];
    
                    if (usuario != null)
                    {
                        usuario.atualizar(usuario);
                        Session["mensagem"] = "Senha alterada com sucesso.";
                        Response.Redirect("pagina_interna.aspx");
                    }                    
                }
    o problema e que sempre a parte usuario != null nao passa, pq esta vazio mesmo, como eu passo os parametros para dentro dele, atraves da Session["usuarioUpdate"]???

    favor complemenmtar o codigo com essa instrução, levando em consideração que o campo preenchido pelo usuario chama-se txt_NovaSenha

    Obg
    quarta-feira, 23 de setembro de 2009 11:23
  • Olá Wagner,

    vc preenche o usuário com os dados do formulário que vc criou e então adiciona-o na sessão.

    Usuario usuario = new Usuario();

    usuario.txt_NovaSenha = txtNovaSenha.Text;

    Session["usuarioUpdate"] = usuario;

    Espero que te ajude.

    Abs,
    sopa
    quarta-feira, 23 de setembro de 2009 12:16