Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

startuga

[Resolvido] Update

Mensagens Recomendadas

startuga

Boas,

Alguém me consegue dizer o que está mal com este código?

Não dá erro mas também não atualiza :c

 Dim con As New SqlConnection("Data Source=xxxxxxx\xxxxx;Initial Catalog=xxxx;User ID=xxxx;pwd=xxxx")
 con.Open()
 Dim command As New SqlCommand("UPDATE AREAS SET AREA_ID = @AREA_ID, AREA_CODE = @AREA_CODE, AREA_DESC = @AREA_DESC WHERE (AREA_ID = @AREA_ID)", con)
 command.Parameters.Add("@AREA_ID", SqlDbType.VarChar).Value = TextBox1.Text
 command.Parameters.Add("@AREA_CODE", SqlDbType.VarChar).Value = TextBox2.Text
 command.Parameters.Add("@AREA_DESC", SqlDbType.VarChar).Value = TextBox3.Text
 command.ExecuteNonQuery()
 con.Close()
End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

E confirmas que existe um registo na tabela AREAS com o campo AREA_ID igual ao conteúdo da textbox1, e que o conteúdo da textbox2 e textbox3 é diferente do que está no registo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Então, o comando que estás a executar está a actualizar a tabela AREAS, para o registo com o AREA_ID igual ao que está na textbox1.

Se não existir o registo, não há atualização.

Se calhar pretendias fazer um INSERT em vez do UPDATE?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
startuga

Eu tenho uma gridview em outra página diferente, quandos seleciono uma das linhas da grid, ela vai me passar os dados para as textbox's que se encontram noutra página. O objectivo é proceder à alteração dos dados.

Devo então utilizar INSERT em vez do UPDATE?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Não, a alteração é feita pelo UPDATE.

Por isso é que tens de confirmar se o que está a ficar nas textboxs está correcto em relação ao que existe na base de dados

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Vamos por partes...

no post original disseste que o comando não estava a funcionar, apesar de parecer correcto.

Por isso, faz um breakpoint naquele codigo que partilhaste e verifica o que está nas textboxs.

Depois abre a base de dados, vai à tabela AREAS e verifica se existe uma AREA_ID com o conteudo que está na textbox1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
startuga

As texbox estão a receber os valores errados, ficam com os valores que tinham antes de eu as editar :|

Editado por startuga

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
startuga

Desta forma:

Na página da grid:

<asp:HyperLinkField DataNavigateUrlFields="AREA_ID,AREA_CODE,AREA_DESC" DataNavigateUrlFormatString = "Edit.aspx?AREA_ID={0}&AREA_CODE={1}&AREA_DESC={2}" Text="Edit/Delete" />

E esta na outra página com as text's:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 Dim strID As String = Request.QueryString("AREA_ID")
 Dim strCode As String = Request.QueryString("AREA_CODE")
 Dim strDesc As String = Request.QueryString("AREA_DESC")
 TextBox1.Text = strID
 TextBox2.Text = strCode
 TextBox3.Text = strDesc

End Sub

Editado por startuga

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nelsonr

Ou seja, em cada page load sobrepoes as variaveis com o que vem no endereço.

Coloca esse codigo dentro de

If Not IsPostBack Then
  ' ...
End if

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.