Tema: Funcion
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2011, 18:50
PRT147
 
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