.NET Framework - Recorrer Dataset

Asked By Jaf1 on 20-May-08 06:32 AM
Como puedo recorrer un dataset para obtener los datos y guardarlos en otra
base de datos




SoftJaén replied on 20-May-08 11:26 AM
Un objeto DataSet no se recorre. Puedes recorrer los objetos DataTable
incluidos en un objeto DataSet, cuestión ésta que ya te lo expliqué el
pasado día 11.

--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Jaf1 replied on 20-May-08 11:46 AM
Cierto, me lo explicaste, pero no acabo de entenderlo, con el código que me
pusiste, se leen los valores, pero como le digo que me los guarde en la otra
tabla, es lo que no consigo resolver.
SoftJaén replied on 20-May-08 12:07 PM
Te acabo de contestar en la otra conversación que iniciastes el pasado día
10 con el asunto «Actualizar Access con DataGrid», y a la cual te remito
para posteriores respuestas sobre el mismo tema.

--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Jhonny Vargas P. replied on 20-May-08 12:08 PM
Una forma muy buena de almacenar un XML (un dataset es una representación de
un XML, por lo tanto puedes generar uno desde el mismo objeto) es utilizando
SQL XML en donde en forma nativa (ups... no estoy seguro de usar esa
palabra)... puedes enviar este XML a un Servidor SQL Server muy rápido...
estamos hablando de millones de registros.

Mira este ejemplo

http://msdn2.microsoft.com/en-us/library/aa225754(SQL.80).aspx

En el foro del Guille alguna vez alguien pregunto algo similar... y le
respondí lo siguiente:

http://foros.elguille.info/Mensajes.aspx?ID=39167




--
Saludos,
Jhonny Vargas P.
http://msmvps.com/jvargas
Santiago de Chile

noticias:05761FA1-531B-4AF9-B72A-FCD72C858CEB@microsoft.com...
SoftJaén replied on 20-May-08 12:29 PM
Hola, Jhonny:

A parte que está utilizando una base de datos Microsoft Access, me parece a
mí que de poco le va a servir almacenar los datos en un archivo XML. :-)

El problema que tiene el usuario/a «Jaf16», es que tiene en un control
DataGridView datos procedentes de una consulta SQL de combinación (INNER
JOIN), datos éstos que los ha tomado mediante un Adaptador de Datos, y lo
que pretende es actualizar las distintas tablas (creo que son dos o tres
tablas) de una manera automática, es decir, utilizando el método «Update»
del objeto OleDbDataAdapter, y éste método, no funciona con consultas que
afectan a más de una tabla, o al menos así es como yo lo tengo entendido.

¿Tú coneces alguna solución que no sea ejecutar "a mano" las
correspondientes consultas SQL de acción (INSERT INTO o UPDATE), para
actualizar las correspondientes tablas?

Por supuesto, los datos los tiene que extraer recorriendo, una a una, todas
las filas existentes en el objeto DataTable asociado al control
DataGridView, y con aquellas filas que hayan sido modificadas, extraer los
valores de las celdas para construir la oportuna consulta SQL de acción.

Un saludo

--
Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.
Jhonny Vargas P. replied on 20-May-08 12:42 PM
jajajaja... ok... hasta aquí llegamos... jejeje... asumí el tema de SQL
Server... ya que no estaba siguiendo el hilo anterior de más abajo.



De todas maneras no tengo idea de esto... nunca me han gustado usar valores
conectados desde la base de datos a objetos... por esto mismo ese método
Update para mi no existe... ya que desconozco la forma en que realiza esa
actualización, mecanismos de bloqueos, transacciones, uso de recursos,
etc...

Eso es independiente a lo que señalas con el INNER JOIN de varias tablas...



Ninguna... salvo enviar "cada x insert o update" en una sola ejecución
(aunque tampoco lo he probado con Access), así es un poco más rápida que
hacerla una a una..



Efectivamente... concuerdo contigo...


Saludos,
Jhonny Vargas P.
Lord Voldemort replied on 20-May-08 05:27 PM
Se supone que ya tienes los datos de origen listos en un datatable
y que ya tienes listo el datatable donde los vas a meter "TablaDestino"
el codigo es mas que claro, asi lo dijo Juan Carlos y asi lo veo....
recorres la tabla origen, creas un nuevo registro, lo llenas con el registro
actual y por ultimo lo agregas a datatable de destino
depues haces un simple update....

en teoria deberia de funcionar si tienes acondicionado tus datables ....


For Each DR As DataRow In Me.DSfrmActCli.TablaOrigen

Dim newCliRow As DSfrmActCli.clientesRow
newCliRow = DSfrmActCli.clientes.NewclientesRow()
newCliRow.CliNombre = CStr(DR(1))
newCliRow.CliDireccion = CStr(DR(2))
newCliRow.CliContacto = CStr(DR(3))
newCliRow.CliTelefono = CStr(DR(4))
newCliRow.CliFax = CStr(DR(5))
newCliRow.CliMaxCredito = CDec(DR(6))
newCliRow.CliRTN = CStr(DR(8))
newCliRow.CliCreditoDias = CInt(DR(10))
DSfrmActCli.clientes.Rows.Add(newCliRow)

Next

Me.ClientesTableAdapter.Update(Me.DSfrmActCli.clientes)