Foros del Web » Programación para mayores de 30 ;) » .NET »

Por favor ayuda urgente

Estas en el tema de Por favor ayuda urgente en el foro de .NET en Foros del Web. Hola: Queria saber si en este codigo hay algo malo ya que cuando edito me pone un error que dice: El índice está fuera del ...
  #1 (permalink)  
Antiguo 01/04/2003, 07:34
Avatar de AIgnacio  
Fecha de Ingreso: diciembre-2002
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
Por favor ayuda urgente

Hola:
Queria saber si en este codigo hay algo malo ya que cuando edito me pone un error que dice:
El índice está fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index
Línea 117: Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString

El codigo es este:
Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles DataGrid1.UpdateCommand
Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString
Dim apsNombre, apsApellido As String
Dim tb As TextBox
tb = CType(e.Item.Cells(2).Controls(0), TextBox)
apsNombre = tb.Text
tb = CType(e.Item.Cells(3).Controls(0), TextBox)
apsApellido = tb.Text
Dim r As dsaps.apsRow
r = Dsaps1.aps.FindByNombre(key)

' Updates the dataset table.
r.Nombre() = apsNombre
r.Apellido() = apsApellido


' Calls a SQL statement to update the database from the dataset
SqlDataAdapter1.Update(Dsaps1)

' Takes the DataGrid row out of editing mode
DataGrid1.EditItemIndex = -1

' Refreshes the grid
DataGrid1.DataBind()
If Not Page.IsPostBack Then
If Session("mydatset") Is Nothing Then
SqlDataAdapter1.Fill(Dsaps1)
Session("mydataset") = Dsaps1
Else
Dsaps1 = CType(Session("mydatset"), dsaps)
End If
DataGrid1.DataBind()
End If
SqlDataAdapter1.Update(Dsaps1)
Session("mydataset") = Dsaps1


End Sub
  #2 (permalink)  
Antiguo 01/04/2003, 16:45
 
Fecha de Ingreso: febrero-2003
Mensajes: 29
Antigüedad: 21 años, 2 meses
Puntos: 0
Si lo he entendido bien esto:
Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex).ToString

no lo puedes hacer por que el valor viene como -1 y por lo tanto no es un indice valido.
  #3 (permalink)  
Antiguo 02/04/2003, 06:46
Avatar de AIgnacio  
Fecha de Ingreso: diciembre-2002
Mensajes: 131
Antigüedad: 21 años, 4 meses
Puntos: 0
y entonces

y entonces la solucion cual es
desde ya muchas gracias
  #4 (permalink)  
Antiguo 02/04/2003, 09:28
 
Fecha de Ingreso: febrero-2003
Mensajes: 29
Antigüedad: 21 años, 2 meses
Puntos: 0
Segun lo veo seria algo como esto:

Dim key As String = DataGrid1.DataKeys(e.Item.ItemIndex+1).ToString
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 04:40.