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

Problema para actualizar registros

Estas en el tema de Problema para actualizar registros en el foro de .NET en Foros del Web. Hola Amigos del foro, tengo una Funcion en un formulario detalle para actualizar registros de una tabla SQL local, el problema que me surge es ...
  #1 (permalink)  
Antiguo 05/05/2011, 17:59
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Problema para actualizar registros

Hola Amigos del foro, tengo una Funcion en un formulario detalle para actualizar registros de una tabla SQL local, el problema que me surge es que el codigo que utilizo para ubicar los registros a modificar no me sirve. El codigo es este:

Me.OperadoresBindingSource.Filter = "Codigo_oper = " & Me.TB_Codigo.Text & " And Identificador=2"

Una vez filtrado el formulario con el registro ubicado realizo los cambios y llamo a esta Funcion:

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 + "0")(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

El error que me devuelve es "Indice fuera de los limites de la matriz".

Con respecto a este error me comentaron que el filtro que utilizo para ubicar el registro no me permite realizar ningun tipo de modificacion a un registro ya editado. Ahora alguien me podria orientar con un ejemplo o bien ponerme el codigo correcto para ubicar registros, para que la funcion de resultado, yo se trabajar unicamente con el metodo Filter es por ese motivo la necesidad del codigo. Desde ya muchas a gracias a todos aquellos que fueron ayudandome en este tema que todavia lamentablemente no pude solucionar. Saludos
  #2 (permalink)  
Antiguo 06/05/2011, 11:30
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema para actualizar registros

Cita:
Iniciado por PRT147 Ver Mensaje
Hola Amigos del foro, tengo una Funcion en un formulario detalle para actualizar registros de una tabla SQL local, el problema que me surge es que el codigo que utilizo para ubicar los registros a modificar no me sirve. El codigo es este:

Me.OperadoresBindingSource.Filter = "Codigo_oper = " & Me.TB_Codigo.Text & " And Identificador=2"

Una vez filtrado el formulario con el registro ubicado realizo los cambios y llamo a esta Funcion:

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 + "0")(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

El error que me devuelve es "Indice fuera de los limites de la matriz".

Con respecto a este error me comentaron que el filtro que utilizo para ubicar el registro no me permite realizar ningun tipo de modificacion a un registro ya editado. Ahora alguien me podria orientar con un ejemplo o bien ponerme el codigo correcto para ubicar registros, para que la funcion de resultado, yo se trabajar unicamente con el metodo Filter es por ese motivo la necesidad del codigo. Desde ya muchas a gracias a todos aquellos que fueron ayudandome en este tema que todavia lamentablemente no pude solucionar. Saludos


Estimado,
Primero que nada, no estas actualizando los valores a la base de datos, lo único que estas haciendo es seteando datarow, te aconsejo que leas algo de sql ya que ni siquiera estas utilizando la sentencia UPDATE TABLA SET CAMPO = @VALOR.

saludos

Etiquetas: registros
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 01:02.