Sábado 9 de Noviembre de 2024, 03:30
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Update En La Tabla Real Con Modificaciones.
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Update En La Tabla Real Con Modificaciones. (Leído 3101 veces)
eliza_marti
Miembro MUY activo
Mensajes: 267
Update En La Tabla Real Con Modificaciones.
«
en:
Lunes 27 de Septiembre de 2004, 16:50 »
0
Hola chicos!..
..espero que estén bien!..Tengo una incognita..lo que pasa es que ..las modificaciones y las eliminaciones no me resultan…solo las inserciones.. osea en el DataSet se me realizan todos los cambios…pero al presionar btnActualizar..(No se puede actualizar en la tabla real) y me presenta el siguiente error: An unhandled exception of type ‘System.Invalid.Exception’ ocurred in system.data.dll Additional information:Dynamic SQL generation for the update command that does not return any key colunmn information. Lo que me extraña
es que no me da ningún error al actualizar por inserción….solo en las modificaciones y eliminaciones..osea que el error está dentro de ellos..pero no sé cual es?...No sé en que dependerá?...será porque falta alguna instrucción?...o porque estoy utilizando Access 2003?..(aunque no creo que sea este último)..Bueno..aquí está mi code..Si alguien es tan amable de ayudarme..le estaré muy agradecida…mientras investigaré…
.bye..
Porcia estoy utilizando tambien Oledb….
Código: Text
Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
Dim oDataRow As DataRow
' obtener el objeto fila de la tabla del dataset
' en el que estamos posicionados
oDataRow =
Me.oDataSet.Tables("Clientes").Rows(Me.iPosicFilaActual)
' modificar las columnas de la fila
' excepto la correspondiente al identificador cliente
oDataRow("Nombre") = Me.txtNombre.Text
oDataRow("FIngreso") = Me.txtFIngreso.Text
oDataRow("Credito") = Me.txtCredito.Text
End Sub
Private Sub btnActualizar_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles btnActualizar.Click
' actualizar los cambios realizados en el dataset
' contra la base de datos real
'Me.catDA.Update(Me.oDataSet, "Clientes")
'ojitos…..aqui me señala el error
Me.oDataAdapter.Update(Me.oDataSet, "Clientes")
End Sub
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnEliminar.Click
Dim oDataRow As DataRow
' obtener el objeto fila, de la tabla del dataset
' en el que estamos posicionados
oDataRow = Me.oDataSet.Tables("Clientes").Rows(Me.iPosicFilaActual)
oDataRow.Delete() ' borrar la fila
' mediante el método GetChanges(), obtenemos una tabla
' con las filas borradas
Dim oTablaBorrados As DataTable
oTablaBorrados = Me.oDataSet.Tables("Clientes").GetChanges
(DataRowState.Deleted)
' actualizar en el almacén de datos las filas borradas
Me.oDataAdapter.Update(oTablaBorrados)
' confirmar los cambios realizados
Me.oDataSet.Tables("Clientes").AcceptChanges()
' reposicionar en la primera fila
Me.btnPrimero.PerformClick()
End Sub
End Class
Tweet
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....
http]
programacion
,
c
,
c++
,
C#
,
java
,
linux
,
videojuegos
,
directX
,
.NET
,
allegro
,
asm
,
codigo
[
Usals
Nuevo Miembro
Mensajes: 22
Re: Update En La Tabla Real Con Modificaciones.
«
Respuesta #1 en:
Lunes 27 de Septiembre de 2004, 20:54 »
0
Yo tuve tambien un problema parecido y era por que el comando update no me lo creaba ya que no tenia ninguna columna clave,lo
Usals
Nuevo Miembro
Mensajes: 22
Re: Update En La Tabla Real Con Modificaciones.
«
Respuesta #2 en:
Lunes 27 de Septiembre de 2004, 20:56 »
0
perdona se me colo el mensaje ,sigo,lo que hice fue crearme mi comando oledb.updatecommand y decirle que condicion debia cumplir el post lo tienes un poco mas abajo,pegale una leida seguro que te aclaras,un saludo
eliza_marti
Miembro MUY activo
Mensajes: 267
Re: Update En La Tabla Real Con Modificaciones.
«
Respuesta #3 en:
Lunes 4 de Octubre de 2004, 16:25 »
0
Saludos a Todos!.
. Estoy muy contenta porque encontré la solución de mi problemita y era que la actualización en una tabla real es diferente cuando es por inserción, modificación y eliminación.. (no se puede hacer con un simple Update en el DataAdapter)..
Bueno..para los que recién empiezan en esto como yo..aquí está mi code resuelto..espero que les pueda servir de guía..
Usals Gracias por tu atención!.
..te cuento que cuando leí lo que me aconsejaste, no entendí nada..pero ahora que que sé como se hace me doy cuenta que si tiene mucho que ver..Gracias!..Bye
….Hasta la Próxima!...
Código: Text
Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click
' actualizar los cambios realizados en el Dataset
' contra la Base de Datos real
' IDCliente,Nombre,FIngreso y Credito son campos
' de mi tabla Clientes
Select Case flag
Case 2 'Cuando lo actualizo por modificación
Dim q As String
q = "UPDATE Clientes SET IDCliente= @IDCLIENTE, Nombre= @NOMBRE, FIngreso = @FINGRESO, Credito=@CREDITO WHERE IDCliente=@IDCLIENTE"
Dim orden As OleDbCommand
orden = New OleDbCommand(q, oConexion)
orden.Parameters.Add(New OleDbParameter("@IDCLIENTE", OleDbType.VarChar, 50))
orden.Parameters.Add(New OleDbParameter("@NOMBRE", OleDbType.VarWChar, 50))
orden.Parameters.Add(New OleDbParameter("@FINGRESO", OleDbType.VarChar, 50))
orden.Parameters.Add(New OleDbParameter("@CREDITO", OleDbType.VarChar, 50))
' Cargando textbox de clave con el valor de la clave
orden.Parameters("@IDCLIENTE").Value = Me.txtIDCliente.Text
orden.Parameters("@NOMBRE").Value = Me.txtNombre.Text
orden.Parameters("@FINGRESO").Value = Me.txtFIngreso.Text
orden.Parameters("@CREDITO").Value = Me.txtCredito.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
Case 1 'Cuando lo actualizo por inserción
Me.oDataAdapter.Update(Me.oDataSet, "Clientes")
Case 3 'Cuando lo actualizo por eliminación
Dim q As String
q = "DELETE * FROM Clientes where IDCliente=@IDCLIENTE"
Dim orden As OleDbCommand
orden = New OleDbCommand(q, oConexion)
orden.Parameters.Add(New OleDbParameter("@IDCLIENTE", OleDbType.VarChar, 50))
orden.Parameters.Add(New OleDbParameter("@NOMBRE", OleDbType.VarChar, 50))
orden.Parameters.Add(New OleDbParameter("@FINGRESO", OleDbType.VarChar, 50))
orden.Parameters.Add(New OleDbParameter("@CREDITO", OleDbType.VarChar, 50))
'TempIDCliente es una variable temporal que puse para
'salvar el ID del cliente que eliminé en el Dataset
orden.Parameters("@IDCLIENTE").Value = Me.TempIDCliente
orden.Parameters("@NOMBRE").Value = Me.txtNombre.Text
orden.Parameters("@FINGRESO").Value = Me.txtFIngreso.Text
orden.Parameters("@CREDITO").Value = Me.txtCredito.Text
orden.Connection.Open()
orden.ExecuteNonQuery()
orden.Connection.Close()
' Refrescando Dataset
oDataAdapter = New OleDbDataAdapter("SELECT * FROM Clientes", oConexion)
oDataSet = New DataSet
oDataAdapter.Fill(oDataSet, "Clientes")
Me.TempIDCliente = ""
End Select
flag = 0
End Sub
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....
http]
programacion
,
c
,
c++
,
C#
,
java
,
linux
,
videojuegos
,
directX
,
.NET
,
allegro
,
asm
,
codigo
[
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Update En La Tabla Real Con Modificaciones.