Estoy buscando el mejor método para importar archivos csv o excel a SQL Server 2005 usando .NET MVC.Mejor método para importar archivos csv o excel a SQL Server 2005 usando .net MVC view
Gracias.
Estoy buscando el mejor método para importar archivos csv o excel a SQL Server 2005 usando .NET MVC.Mejor método para importar archivos csv o excel a SQL Server 2005 usando .net MVC view
Gracias.
Hay una biblioteca realmente buena llamada FileHelpers que es a) 100% gratis, b) totalmente en C#, y puede importar fácilmente cualquier tipo de archivo de texto - separado por comas, separado de pestañas, ancho fijo y tan en.
No debería tener problemas al usar esto para cargar su archivo CSV en objetos en memoria y almacenarlos en SQL Server usando ADO.NET.
En FileHelpers, primero necesita tener una clase que describa sus datos, p. una clase "Cliente" (o lo que sea que esté importando).
A continuación, puede importar un archivo usando el código de algo como esto:
FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>();
Customer[] dataLoaded = engine.ReadFile(fileName);
vez que tenga su gama de clientes, puede simplemente iterar a través de eso y guardar los datos (por lo general dentro de una transacción) con p.ej un procedimiento almacenado o una consulta SQL ad-hoc:
using(TransactionScope ts = new TransactionScope())
{
foreach(Customer c in dataLoadad)
{
SaveCustomer(c);
}
ts.Complete();
}
o se puede convertir la matriz de cliente a un DataTable y utilizar SqlBulkCopy a granel insertar esto en su base de datos de SQL Server - hay un montón de opciones!
ACTUALIZACIÓN:
¿Tiene una [DelimitedRecord]
u otro de esos atributos en su clase BlackListDevice
?
Se solucionó esto al agregar una clase separada para las cargas de archivos, funciona como un encanto usando FileHelper.
Hola, gracias por la respuesta. Eché un vistazo al archivo auxiliar. Estoy usando ActiveRecord y NHibernate. Recibo este error La clase de registro no tiene registros. en esta línea FileHelperEngine engine = new FileHelperEngine (typeof (BlackListDevice)); Gracias de nuevo por su ayuda. –
Sí, mi clase tiene este aspecto [DelimitedRecord (" ")] [ActiveRecord] BlackListDevice clase pública: Identificado { [propiedad] pública DeviceReference Virtual String {get; conjunto; } } –
¿Y cuándo obtiene este error? Al compilar? cuando se ejecuta? ¿Su archivo realmente contiene datos y contiene datos que coinciden con su estructura de registro? –