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

Para "Carlojas"

Estas en el tema de Para "Carlojas" en el foro de .NET en Foros del Web. Hola Carlojas, hace unos dias me ayudaste a realizar un codigo para actualizar mi base de datos desde una funcion, esta funciona correctamente me actualiza ...
  #1 (permalink)  
Antiguo 30/04/2011, 15:40
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Para "Carlojas"

Hola Carlojas, hace unos dias me ayudaste a realizar un codigo para actualizar mi base de datos desde una funcion, esta funciona correctamente me actualiza los registros ya editados pero tengo ahora otro problema a partir de esto. Te comento que antes de llamar a la Funcion para ubicar un registro utilizo el sig codigo desde un boton filtrar

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 + "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

Luego salgo del programa y voy a la base de datos para controlar que los cambios esten bien y efectivamente los cambios los realiza correctamente pero que pasa, estos cambios los realiza tambien al primer registro siempre. Es decir si modifico el registro Nro. 5 tambien me modifica el 1 de igual manera, a medida que voy modificando datos a diferentes registros me actualiza el primero. Creo que el problema esta en esta linea del codigo pero no se como modificarla. Espero me puedas ayudar y muchas gracias nuevamente.

Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "1")(0)
Id es el campo con clave principal (Prop. int autonumerico)

Tambien la modifique de estas maneras pero me tira errores
Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "")(0)
Aca me devuelve el error "Indice fuera de los limites de la matriz"

Dim fila As DataRow = ds.Tables(0).Select("Id = " & RowId.ToString & "")(0)
de esta manera me tira el mismo error

Saludos
  #2 (permalink)  
Antiguo 01/05/2011, 16:54
 
Fecha de Ingreso: enero-2004
Ubicación: mexico
Mensajes: 110
Antigüedad: 20 años, 3 meses
Puntos: 0
Respuesta: Para "Carlojas"

El error que te está mandando es x q el filtro que haces al data table no devuelve registros, es decir que en la tabla no existe ningún registro que tenga el ID de RowId
__________________
Controles Web para ASP.NET (Tabstrip, Datepicker, Calendar, Panel colapsable...) en
www.enlasys.com
  #3 (permalink)  
Antiguo 03/05/2011, 06:26
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: Para "Carlojas"

Cita:
Iniciado por speack Ver Mensaje
El error que te está mandando es x q el filtro que haces al data table no devuelve registros, es decir que en la tabla no existe ningún registro que tenga el ID de RowId
Hola, sin embargo me actuzaliza el registro filtrado con el primer codigo pero porque tambien me copia los datos del registro filtrado al primer registro de la tabla y me lo actualiza tambien.
No podrias ver el codigo y arreglarlo.

Muchas gracias

Etiquetas: Ninguno
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 00:36.