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

Funcion

Estas en el tema de Funcion en el foro de .NET en Foros del Web. Hola a todos, en un formulario detalle tengo esta funcion que cuando la llamo me modifica los registros ya editados de la base de datos. ...
  #1 (permalink)  
Antiguo 27/04/2011, 18:50
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Funcion

Hola a todos, en un formulario detalle tengo esta funcion que cuando la llamo me modifica los registros ya editados de la base de datos. La tabla "Operadores" tiene un campo con clave principal llamado "Id" con propiedad int (incremento de a 1, primer valor 1). La funcion me actualiza correctamente los datos pero el problema que surge es que luego de llamar a la funcion al resto de los campos que contengan un valor numerico le suma un valor mas, es decir por ej. si en el campo "Codigo_oper" tenia el valor 100 despues de llamar a la funcion lo convierte en 101. Creo que el problema es ta en esta linea

Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "1")(0)

Yo la modifique de esta manera

Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "")(0)

pero de esta forma me tira el sig. error

Índice fuera de los límites de la matriz.

Alguien me podria decir donde tengo el error. Muchas gracias

Public Function ModifOper(ByVal Cedula As String, ByVal RowId As Integer) As Boolean
Try
Dim conect As New SqlCeConnection(My.Settings.LaLolaConnectionString )
conect.Open()
Dim ds As New DataSet
Dim adp As New SqlCeDataAdapter("Select * from Operadores", conect)
adp.Fill(ds)
Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "1")(0)
fila.BeginEdit()
fila("Identificador") = Me.L_Identificador.Text
fila("Codigo_oper") = Me.TB_Codigo.Text
fila("Den_oper") = Me.TB_RazonSocial.Text
fila("Domicilio") = Me.TB_Domicilio.Text
fila("Telefono") = Me.TB_Telefono.Text
fila("Celular") = Me.TB_Celular.Text
fila("Fax") = Me.TB_Fax.Text
fila("Email") = Me.TB_Email.Text
fila("Contacto") = Me.TB_Contacto.Text
fila("Estado") = Me.L_Estado.Text
fila.EndEdit()
Dim cb As New SqlCeCommandBuilder(adp)
adp.Update(ds)
ds.Tables(0).AcceptChanges()
Return True
conect.Close()
Catch ex As DataException
MessageBox.Show(ex.Message)
Return False
Catch ex2 As SqlCeException
MessageBox.Show(ex2.Message)
Return False
End Try
End Function
  #2 (permalink)  
Antiguo 28/04/2011, 06:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 40
Antigüedad: 16 años
Puntos: 3
Respuesta: Funcion

Te sugiero que si lo que deseas es hacer una actualizacion de un registros en una bd, simplemente hagas un update a la bd y que no lo hagas desde un datatable.

Quizas podrias probar a cambiar los signos + por &

Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "")(0)

Dim fila As DataRow = ds.Tables(0).Select("Id = " & RowId.ToString & "")(0)
  #3 (permalink)  
Antiguo 28/04/2011, 17:49
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Funcion

Hola, gracias por tu respuesta, cambie la linea de codigo por la que vos me pusiste reemplazando el signo + por el & pero me sigue tirando el mismo error "Indice fuera de la matriz"

Etiquetas: funcion
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 22:55.