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

Funcion que actualiza registros de una tabla (SQL)

Estas en el tema de Funcion que actualiza registros de una tabla (SQL) en el foro de .NET en Foros del Web. Hola compañeros del foro, en un formulario detalle tengo el sig. codigo de una Funcion. Public Function ModifOper(ByVal Cedula As String, ByVal RowId As Integer) ...
  #1 (permalink)  
Antiguo 29/04/2011, 18:29
 
Fecha de Ingreso: abril-2011
Mensajes: 10
Antigüedad: 13 años, 7 meses
Puntos: 0
Funcion que actualiza registros de una tabla (SQL)

Hola compañeros del foro, en un formulario detalle tengo el sig. codigo de una 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).Rows.Find(RowId)
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

Cuando llamo a la Funcion me devuelve el sig. Error
"La tabla no tiene clave principal"
Es verdad, mi tabla no tiene un campo con clave principal, entonces agregue uno llamado "Id" (int autonumerico). Igualmente me arroja el mismo error
"La tabla no tiene clave principal"
Prove reemplazando esta linea
Dim fila As DataRow = ds.Tables(0).Rows.Find(RowId)
por esta otra
Dim fila As DataRow = ds.Tables(0).Select("Id = " + RowId.ToString + "")(0)
Ahora el error que me tira es
"Indice fuera de los limites de la matriz"
Reemplazo los signos + por & de esta manera
Dim fila As DataRow = ds.Tables(0).Select("Id = " & RowId.ToString & "")(0)
pero sigue tirando el mismo error "Indice fuera de los limites de la matriz"

Pregunta: hay alguna manera de modificar el codigo de la Funcion para que funcione sin que la tabla tenga un campo con clave principal (Si se puede esto sería lo ideal) o bien modificar la Funcion que funcione con un campo
con clave principal. Como les decia si se puede realizar sin clave principal mejor.

Amigos del foro saludos para todos y muchas gracias de antemano, espero puedan ayudarme asi termino mi formulario.
  #2 (permalink)  
Antiguo 30/04/2011, 20:56
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 9 meses
Puntos: 37
Respuesta: Funcion que actualiza registros de una tabla (SQL)

Yo te recomiendo que debuguees la función, utiliza breakpoints para ver en que linea te causa el error.

Saludos!
__________________
http://ka0stj.wordpress.com/

Etiquetas: funcion, registros, sql, tabla
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 13:47.