Jump to content


Photo

Não Edita Registros


  • Faça o login para participar
1 reply to this topic

#1 Maykel Esser

Maykel Esser

    Super Veterano

  • Usuários
  • 1536 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR

Posted 14/01/2009, 12:55

Olá gente! Estou iniciando no ASP como auto-didata, e estou tendo algumas dificuldades para editar um registro que existe em um banco de dados.

Ele recupera os dados certinho, porém na hora que ativo a função Alterar, ele mantém os dados antigos. Tanto que eu dei um print pra ele aparecer como estava sendo executada a consulta, e estav com os dados originais, não os alterados!

Alguem pode me indicar onde estou errando?

[codebox]<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="editarUsers.aspx.vb" Inherits="Testes.editarUsers" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Editar usuários</title>
</head>
<body>
<form id="form1" runat="server">
<div>Editar Usuário</div>
<div>Nome: <asp:TextBox ID="txNome" runat="server"></asp:TextBox></div>
<div>Email: <asp:TextBox ID="txEmail" runat="server"></asp:TextBox></div>
<div>Senha: <asp:TextBox ID="txSenha" runat="server"></asp:TextBox></div>
<asp:HiddenField ID="txId" runat="server" />
<hr />
<div><asp:Button id="editar" text="Editar" onclick="Alterar" runat="server"/></div>
</form>
</body>
</html>[/codebox]

[codebox]Imports System
Imports System.Data
Imports System.Data.SqlClient

Partial Public Class editarUsers
Inherits System.Web.UI.Page

'Variáveis
Dim conectar As Conexao = New Conexao()
Dim conexao As SqlConnection

Dim codigo As Integer
Dim com As SqlCommand
Dim sql As String
Dim dr As SqlDataReader

Dim id_user As Integer
Dim nome As String
Dim email As String
Dim senha As String

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If (Request.QueryString(codigo) <> "") Then
'Recupera o valor passado na URL
codigo = Request.QueryString(codigo)

'Recupera os dados da seção

conexao = conectar.Abrir

sql = "SELECT * FROM users WHERE id = " & codigo
com = New SqlCommand(sql, conexao)
dr = com.ExecuteReader()

If (dr.HasRows) Then
dr.Read()

'Atribui os dados aos campos do formulário
txId.Value = dr("id")
txNome.Text = dr("nome")
txEmail.Text = dr("email")
txSenha.Text = dr("senha")

End If

dr.Close()
conexao.Close()

End If

End Sub

Sub Alterar()

Dim nome As String
Dim email As String
Dim senha As String
Dim con As SqlCommand

'Atribui os valores do formulário a variáveis
nome = txNome.Text
email = txEmail.Text
senha = txSenha.Text

conexao = conectar.Abrir

Dim sql As String
Dim linhas As String

sql = "UPDATE users SET nome = '" & nome & "', email = '" & email & "', senha = '" & senha & "' WHERE id = " & codigo
con = New SqlCommand(sql, conexao)
linhas = con.ExecuteNonQuery()
con.Dispose()

If (linhas > 0) Then
'Response.Redirect("ok.aspx?pagina=funfou")
Response.Write(sql)
Else
Response.Redirect("erro.aspx")
End If

conexao.Close()

End Sub

End Class[/codebox]

Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens! add.png


#2 Daniel

Daniel

    Normal

  • Usuários
  • 63 posts
  • Sexo:Não informado

Posted 17/01/2009, 12:54

O que acontece é que vc esta sempre carregando os dados novamente de uma procurada sobre o processamento de paginas asp.net, o page_load sempre é chamado e vc carrega os dados novamente. Estude tambem o depurador do visual studio que é extremamente util e passo a passso vc vera o que precisa sem a necessidade de imprimir os dados na tela.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq