cambios en una tabla del dataset

20/06/2005 - 19:09 por edu | Informe spam
con
objdatasetchanges = CType(Me.DsPedidos.GetChanges, DataSet)
te devuelve los cambios hechos en un dataset,
ahi alguna manera de saber la tabla que se ha modificado, suponiendo que el
dataset contiene varias tablas?

gracias
 

Leer las respuestas

#1 Angel J. Hernández M.
21/06/2005 - 18:25 | Informe spam
El método GetChanges() te devuelve un DataSet con todos los cambios que haz
realizado sobre un DataSet desde la última vez que ejecutaste el método
AcceptChanges() pues bien el DataSet devuelto por GetChanges() va a tener
las tablas y registros de estas que hayan sido modificados, es decir, puedes
determinar el nombre de las tablas al acceder a la propiedad TableName de
las tablas contenidas en la colección Tables del DataSet.

El siguiente código (el cual puedes pegar en el manejador del evento click
de algún botón) te demuestra esto

Dim ds As New DataSet, _
row As DataRow, _
dlg As New SaveFileDialog

ds.Tables.Add(New DataTable("Contactos"))
ds.Tables.Add(New DataTable("Productos"))

ds.Tables(0).Columns.AddRange(New DataColumn() {New DataColumn("cedula",
GetType(String)), _
New DataColumn("nombre", GetType(String)), _
New DataColumn("apellido", GetType(String))})

ds.Tables(1).Columns.AddRange(New DataColumn() {New DataColumn("producto",
GetType(String)), _
New DataColumn("fabricante", GetType(String))})

row = ds.Tables(0).NewRow
row(0) = "12345"
row(1) = "Pepito"
row(2) = "Preguntón"
ds.Tables(0).Rows.Add(row)

row = ds.Tables(1).NewRow
row(0) = "Rayo Láser"
row(1) = "ACME"

ds.AcceptChanges()

row = ds.Tables(0).NewRow
row(0) = "67890"
row(1) = "Peter"
row(2) = "Parker"
ds.Tables(0).Rows.Add(row)

row = ds.Tables(1).NewRow
row(0) = "Yunque"
row(1) = "ACME"
ds.Tables(1).Rows.Add(row)

If dlg.ShowDialog().Equals(DialogResult.OK) AndAlso dlg.FileName.Length >
0 Then ds.GetChanges().WriteXml(dlg.FileName)

Saludos,


Angel J. Hernández M.
MCP - MCAD - MCSD - MCDBA
http://groups.msn.com/desarrolladoresmiranda
http://www.consein.com




"edu" wrote in message
news:uGKv%
con
objdatasetchanges = CType(Me.DsPedidos.GetChanges, DataSet)
te devuelve los cambios hechos en un dataset,
ahi alguna manera de saber la tabla que se ha modificado, suponiendo que
el dataset contiene varias tablas?

gracias

Preguntas similares