Estoy comenzando un proyecto con asp.net visual studio 2008/SQL 2000 (2005 en el futuro) usando C#.importar archivo csv/excel en la base de datos sql asp.net
La parte engañosa para mí es que el esquema de DB existente cambia a menudo y las columnas de los archivos de importación tendrán que coincidir con el esquema db existente ya que pueden no coincidir uno a uno en los nombres de las columnas. (Hay una tabla de búsqueda que proporciona el esquema de tablas con los nombres de columna que usaré)
Estoy explorando diferentes formas de abordar esto y necesito algunos consejos de expertos. ¿Hay algún control o marco existente que pueda aprovechar para hacer algo de esto?
Hasta ahora he explorado el control FileUpload .NET, así como algunos controles de carga 3er partido para llevar a cabo la carga como SlickUpload pero los archivos subidos debe ser < 500mb
siguiente parte es la lectura de mi CSV/Excel y analizándolo para que se muestre al usuario, de modo que puedan coincidir con nuestro esquema db. Vi CSVReader y otros pero para Excel es más difícil ya que necesitaré soportar diferentes versiones.
Esencialmente El usuario que realiza esta importación insertará y/o actualizará varias tablas de este archivo de importación. Existen otros requisitos más avanzados, como la coincidencia de registros pero y la vista previa de los registros de importación, pero deseo entender primero cómo hacerlo.
Actualización: terminé usando csvReader con LumenWorks.Framework para cargar los archivos csv.
sí, estoy usando sql server 2000 pero también necesita ser compatible con sql server 2005. No estoy familiarizado con SqlBulkCopy y analizaré esto. Me imagino que necesitaría usar algo más para poder actualizar – kiev
Ah, cierto. Entonces, ¿necesita hacer insertos y actualizaciones? SqlBulkCopy es ideal para insertar eficientemente una gran cantidad de datos en su base de datos, pero no maneja las actualizaciones directamente. Puede resolver esto con una tabla de etapas y algunos SQL adicionales para mover datos a la tabla que realmente desea modificar. –