none
Problema com um comando UPDATE C# SQL Server RRS feed

  • Pergunta

  • Pessoal, não está gerando nenhuma exception, mas também não está alterando nenhum campo da minha tabela, será que alguém pode identificar o problema? Segue o código
               data = DateTime.Now.ToShortDateString(); 
                hora = DateTime.Now.ToLongTimeString();
                SqlConnection sqlConn = new SqlConnection(Properties.Settings.Default.cadastroConnectionString);
                SqlCommand cmd = new SqlCommand("SELECT * FROM usuarios WHERE login=@usuario and senha=@senha", sqlConn);
                cmd.Parameters.Add("@usuario", SqlDbType.VarChar).Value = txtUsuario.Text;
                cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = txtSenha.Text;
                   //abre a conexão com o banco
                    sqlConn.Open();
                    //alimenta o datareader
                    SqlDataReader le = null;
                    le = cmd.ExecuteReader();
                    if (le.Read())
                    {
                        //alimenta as variáveis com as informações do usuário logado
                        id = le[0].ToString();
                        nome = le[1].ToString();
                        nivel = le[4].ToString();                    
                        email = le[5].ToString();
                        ultimoAcesso = le[6].ToString();
                        le.Close();
                        //inseri o registro do campo último acesso                    
                        SqlCommand cmd2 = new SqlCommand("UPDATE usuarios SET ultimo_acesso = @ultimo WHERE id_usuario=@id", sqlConn);
                        cmd2.Parameters.Add("@ultimo", SqlDbType.VarChar).Value = data + " " + hora;
                        cmd2.Parameters.Add("@id", SqlDbType.Int).Value = id;
                        cmd2.ExecuteNonQuery();

    Bruno Barbosa - Futuro MCPD
    terça-feira, 5 de abril de 2011 02:01

Respostas

  • Bruno,

    Estranho hein... Já tentou rodar o Profiler do SQL pra ver qual comando está chegando no banco?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 5 de abril de 2011 09:26
    Moderador
  • Bruno,

    Basicamente você vai iniciar o profiler e executar a sua aplicação... Então o profiler vai listar todos os comandos SQL que foram enviados para a database... Aí você verifica qual query está chegando no banco nesse seu método...

    Informações sobre o SQL Server Profiler:

    http://msdn.microsoft.com/pt-br/library/cc580638.aspx


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 5 de abril de 2011 15:43
    Moderador
  • Fecha a conecao e abrenovamente:

    Fecha primeiro e abre depois.

      SqlCommand cmd2 = new SqlCommand("UPDATE usuarios SET ultimo_acesso = @ultimo WHERE id_usuario=@id", sqlConn);
    sqlconn.open();
                        cmd2.Parameters.Add("@ultimo", SqlDbType.VarChar).Value = data + " " + hora;
                        cmd2.Parameters.Add("@id", SqlDbType.Int).Value = id;
                        cmd2.ExecuteNonQuery();
    e fecha novamente.
    Eu se fosse voce criaria um dataset ou table, funcao e criava novo metodo gravar baseado nesta funcao dataset ou datatable. Seria a melhor forma de programar do que juntar estes codigo todos dentro, puxar e gravar ao mesmo tempo.


    Just Be Humble Malange!
    terça-feira, 5 de abril de 2011 16:20

Todas as Respostas

  • Bruno,

    Estranho hein... Já tentou rodar o Profiler do SQL pra ver qual comando está chegando no banco?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 5 de abril de 2011 09:26
    Moderador
  • Não conheço essa ferramenta, mas vou tentar usar! Se puder postar algo sobre essa ferramenta ajudaria bastante!

     

    Grato


    Bruno Barbosa - Futuro MCPD
    terça-feira, 5 de abril de 2011 14:59
  • Bruno,

    Basicamente você vai iniciar o profiler e executar a sua aplicação... Então o profiler vai listar todos os comandos SQL que foram enviados para a database... Aí você verifica qual query está chegando no banco nesse seu método...

    Informações sobre o SQL Server Profiler:

    http://msdn.microsoft.com/pt-br/library/cc580638.aspx


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 5 de abril de 2011 15:43
    Moderador
  • Fecha a conecao e abrenovamente:

    Fecha primeiro e abre depois.

      SqlCommand cmd2 = new SqlCommand("UPDATE usuarios SET ultimo_acesso = @ultimo WHERE id_usuario=@id", sqlConn);
    sqlconn.open();
                        cmd2.Parameters.Add("@ultimo", SqlDbType.VarChar).Value = data + " " + hora;
                        cmd2.Parameters.Add("@id", SqlDbType.Int).Value = id;
                        cmd2.ExecuteNonQuery();
    e fecha novamente.
    Eu se fosse voce criaria um dataset ou table, funcao e criava novo metodo gravar baseado nesta funcao dataset ou datatable. Seria a melhor forma de programar do que juntar estes codigo todos dentro, puxar e gravar ao mesmo tempo.


    Just Be Humble Malange!
    terça-feira, 5 de abril de 2011 16:20