Visual Basic.NET - Funcion que actualiza registros de una tabla (SQL)

 
Vista:

Funcion que actualiza registros de una tabla (SQL)

Publicado por Federico (1 intervención) el 30/04/2011 02:26:37
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder