Foros del Web » Programando para Internet » ASPX (.net) »

Problema Con UpDate en DataGrid

Estas en el tema de Problema Con UpDate en DataGrid en el foro de ASPX (.net) en Foros del Web. Hola amigos, tengo un problema al realizar un update desde un DataGrid; sucede que cuando confirmo la actualizacion en la fila editable el sql me ...
  #1 (permalink)  
Antiguo 08/02/2007, 16:42
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 22 años
Puntos: 0
Pregunta Problema Con UpDate en DataGrid

Hola amigos, tengo un problema al realizar un update desde un DataGrid; sucede que cuando confirmo la actualizacion en la fila editable el sql me devuelve el error numero 8178.
Alguien me podría decir a que se debe este error.
Les adjunto el procedimiento de Actualización:



Sub MyList_Update(Sender As Object, E As DataGridCommandEventArgs)

Dim DS As DataSet
Dim MyCommand As SqlCommand

Dim UpdateCmd As String = "UPDATE propiedades SET matricula = @matricula,barrio = @barrio," & _
"mza=@mza,lot=@lot,calle=@calle,nro=@nro,pis=@pis, dpt=@dpt,obs=@obs,id_est=@id_est,id_inq=@id_inq " & _
" where matricula = @matricula"

MyCommand = New SqlCommand(UpdateCmd, MyConnection)

MyCommand.Parameters.Add(New SqlParameter("@matricula", SqlDbType.int))
MyCommand.Parameters.Add(New SqlParameter("@barrio", SqlDbType.VarChar, 30))
MyCommand.Parameters.Add(New SqlParameter("@mza", SqlDbType.VarChar, 3))
MyCommand.Parameters.Add(New SqlParameter("@lot", SqlDbType.VarChar, 3))
MyCommand.Parameters.Add(New SqlParameter("@calle", SqlDbType.VarChar, 40))
MyCommand.Parameters.Add(New SqlParameter("@nro", SqlDbType.VarChar, 5))
MyCommand.Parameters.Add(New SqlParameter("@pis", SqlDbType.VarChar, 3))
MyCommand.Parameters.Add(New SqlParameter("@dpt", SqlDbType.VarChar, 3))
MyCommand.Parameters.Add(New SqlParameter("@obs", SqlDbType.text))
MyCommand.Parameters.Add(New SqlParameter("@id_est", SqlDbType.int))
MyCommand.Parameters.Add(New SqlParameter("@id_inq", SqlDbType.int))
MyCommand.Parameters("@matricula").Value = MyList.DataKeys(CInt(E.Item.ItemIndex))

MyCommand.Connection.Open()

Try
MyCommand.ExecuteNonQuery()
Message.InnerHtml = "<b>Registro actualizado</b><br>" & UpdateCmd.ToString()
MyList.EditItemIndex = -1
Catch Exp As SQLException
If Exp.Number = 2627
Message.InnerHtml = "ERROR: ya existe un registro con la misma clave principal"
Else
Message.InnerHtml = "Nro.Err:" & Exp.number & ". ERROR: no se pudo actualizar el registro, compruebe que los campos están rellenos correctamente"
End If
Message.Style("color") = "red"
End Try

MyCommand.Connection.Close()

BindGrid()
End Sub

Saludos.Y Gracias.-
  #2 (permalink)  
Antiguo 08/02/2007, 17:11
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 22 años
Puntos: 0
Re: Problema Con UpDate en DataGrid

Hola he agregado unas lineas al procedimiento antes de ejecutar el comando, porque esta incompleto, pero sigo teniendo el mismo problema.

Lineas agregadas justo antes de ejecutar el comando:

Dim Cols As String() = {"@matricula","@barrio","@mza","@lot","@calle","@n ro","@pis","@dpt","@obs","@id_est","@id_inq"}

Dim NumCols As Integer = E.Item.Cells.Count

Dim I As Integer
For I=2 To NumCols-2 'skip first, second and last column
Dim CurrentTextBox As TextBox
CurrentTextBox = E.Item.Cells(I).Controls(0)
Dim ColValue As String = CurrentTextBox.Text

MyCommand.Parameters(Cols(I-1)).Value = ColValue
Next
Gracias.-
  #3 (permalink)  
Antiguo 09/02/2007, 09:21
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 22 años
Puntos: 0
Un dato mas

ESte es el mensaje de error que me devuelve:

nro.Err:8178. ERROR: Prepared statement '(@matricula int,@barrio varchar(30),@mza varchar(3))UPDATE propi' expects parameter @mza, which was not supplied.

Saludos. gracias.-
  #4 (permalink)  
Antiguo 09/02/2007, 09:28
 
Fecha de Ingreso: mayo-2002
Mensajes: 92
Antigüedad: 22 años
Puntos: 0
De acuerdo Solucion

Buenas, el problema era una pabada

está en una linea de codigo

For I=2 To NumCols-2 'skip first, second and last column

que debería ser así

For I=2 To NumCols-1 'skip first, second and last column


Gracias a todos. SAludos.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:48.