xml a datatable

24/03/2009 - 12:58 por Jesús Rodríguez | Informe spam
Hola buenos días.
Llevo peleandome con una cosa toda la mañana a ver si me podéis
ayudar.
Tengo un datatable con aproximadamente 1000 registros que provienen de
un archivo excel

Estos 1000 registros quiero insertarlos en una tabla temporal de sql
server 2005 (de una sola vez) y hacer un join contra otra tabla para
sacar en otro datatable los diferentes datos para rellenar un grid.

Estoy intentando pasar el primer datatable que proviene del excel a
xml y ese xml pasarselo a la tabla pero no tengo ni idea como poder
hacerlo.
No se si me he explicado bien.
Se os ocurre algo
Saludos, Jesús

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
24/03/2009 - 13:42 | Informe spam
"Jesús Rodríguez" wrote in message
news:
Estos 1000 registros quiero insertarlos en una tabla temporal de sql
server 2005 (de una sola vez) y hacer un join contra otra tabla para
sacar en otro datatable los diferentes datos para rellenar un grid.

Estoy intentando pasar el primer datatable que proviene del excel a
xml y ese xml pasarselo a la tabla pero no tengo ni idea como poder
hacerlo.
No se si me he explicado bien.
Se os ocurre algo



Si realmente quieres pasar por medio de un XML, puedes salvar el
DataTable a un archivo XML mediante el método WriteXml del DataTable, y
luego leer el xml desde el Sql Server utilizando (por ejemplo) la función
OPENXML.

Pero no comprendo el motivo de querer pasar por xml. ¿Por qué no
insertas directamente los datos del DataTable en el Sql Server? Bastaría
usar un DataAdapter bien configurado, y si quieres que se haga de una sola
vez, basta que le pongas al DataAdapter un número grande en su propiedad
UpdateBatchSize.
Respuesta Responder a este mensaje
#2 Jesús Rodríguez
24/03/2009 - 16:58 | Informe spam
Hago lo del writexml y sin problema pero luego no soy capaz de leerlo
desde sql server.

Saludos y gracias, jesús


On 24 mar, 13:42, "Alberto Poblacion" <earthling-
wrote:
"Jesús Rodríguez" wrote in message

news:

> Estos 1000 registros quiero insertarlos en una tabla temporal de sql
> server 2005 (de una sola vez)  y hacer un join contra otra tabla para
> sacar en otro datatable los diferentes datos para rellenar un grid.

> Estoy intentando pasar el primer datatable que proviene del excel a
> xml y ese xml pasarselo a la tabla pero no tengo ni idea como poder
> hacerlo.
> No se si me he explicado bien.
> Se os ocurre algo

    Si realmente quieres pasar por medio de un XML, puedes salvar el
DataTable a un archivo XML mediante el método WriteXml del DataTable, y
luego leer el xml desde el Sql Server utilizando (por ejemplo) la función
OPENXML.

    Pero no comprendo el motivo de querer pasar por xml. ¿Por qué no
insertas directamente los datos del DataTable en el Sql Server? Bastaría
usar un DataAdapter bien configurado, y si quieres que se haga de una sola
vez, basta que le pongas al DataAdapter un número grande en su propiedad
UpdateBatchSize.
Respuesta Responder a este mensaje
#3 Alberto Poblacion
24/03/2009 - 17:21 | Informe spam
"Jesús Rodríguez" wrote in message
news:
Hago lo del writexml y sin problema pero luego no soy capaz de leerlo
desde sql server.



Una opción: usando "XML Bulk Load":
http://msdn.microsoft.com/es-es/lib...71993.aspx


Otra opción: OPENROWSET:
http://weblogs.sqlteam.com/mladenp/...60235.aspx

Otra: En lugar de WriteXml usa GetXml para obtener el XML en un String.
Después, pásale el XML como argumento a un procedimiento almacenado, y
dentro del procedimiento "digiérelo" con sp_xml_preparedocument ... OPENXML
... sp_xml_removedocument:
http://msdn.microsoft.com/es-es/lib...86918.aspx
Respuesta Responder a este mensaje
#4 Jesús Rodríguez
25/03/2009 - 16:14 | Informe spam
Muchas gracias por la ayuda.


On 24 mar, 17:21, "Alberto Poblacion" <earthling-
wrote:
"Jesús Rodríguez" wrote in message

news:

> Hago lo del writexml y sin problema pero luego no soy capaz de leerlo
> desde sql server.

Una opción: usando "XML Bulk Load":http://msdn.microsoft.com/es-es/lib...71993.aspx

Otra opción: OPENROWSET:http://weblogs.sqlteam.com/mladenp/...60235.aspx

Otra: En lugar de WriteXml usa GetXml para obtener el XML en un String.
Después, pásale el XML como argumento a un procedimiento almacenado, y
dentro del procedimiento "digiérelo" con sp_xml_preparedocument ... OPENXML
... sp_xml_removedocument:http://msdn.microsoft.com/es-es/lib...86918.aspx
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida