Jump to content
Sign in to follow this  
startuga

[Resolvido] Update

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
startuga

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

Edited by startuga

Share this post


Link to post
Share on other 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

Edited by startuga

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.