Poszukuję najlepszej metody importowania pliku CSV lub Excel do SQL Server 2005 przy użyciu .net MVC.Najlepsza metoda importowania pliku CSV lub Excel do SQL Server 2005 przy użyciu .net MVC view
Dziękuję.
Poszukuję najlepszej metody importowania pliku CSV lub Excel do SQL Server 2005 przy użyciu .net MVC.Najlepsza metoda importowania pliku CSV lub Excel do SQL Server 2005 przy użyciu .net MVC view
Dziękuję.
Istnieje naprawdę dobra biblioteka o nazwie FileHelpers, która jest a) w 100% darmowa, b) w pełni w języku C#, i może z łatwością importować dowolny plik tekstowy - oddzielany przecinkami, oddzielony tabulatorami, o stałej szerokości i tak na.
Nie powinieneś mieć problemu z użyciem tego pliku do załadowania pliku CSV do obiektów w pamięci i przechowywania ich w SQL Server przy użyciu ADO.NET.
W FileHelpers, potrzebujesz najpierw klasy opisującej twoje dane, np. klasa "Klient" (lub cokolwiek, co importujesz).
Następnie można zaimportować plik, używając kodu coś takiego:
FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>();
Customer[] dataLoaded = engine.ReadFile(fileName);
Gdy masz swoją tablicę klientów, można też po prostu iterację że i zapisać dane (zwykle wewnątrz transakcji) z na przykład procedura składowana lub kwerendy SQL ad hoc:
using(TransactionScope ts = new TransactionScope())
{
foreach(Customer c in dataLoadad)
{
SaveCustomer(c);
}
ts.Complete();
}
lub można przekształcić tablicę klientów do DataTable i używać SqlBulkCopy luzem wstawić, że do bazy danych SQL Server - istnieje wiele opcji!
UPDATE:
Czy masz [DelimitedRecord]
lub inny z tych atrybutów na klasy BlackListDevice
?
Naprawiono to, dodając oddzielną klasę do przesyłania plików, działa jak urok za pomocą FileHelper.
Witam, dziękuję za odpowiedź. Spojrzałem na pomocnika plików. Używam ActiveRecord i NHibernate. Otrzymuję ten błąd Klasa rekordów nie ma rekordów. w tej linii FileHelperEngine engine = new FileHelperEngine (typeof (BlackListDevice)); Jeszcze raz dziękuję za pomoc. –
Tak, moja klasa wygląda to [DelimitedRecord (”„)] [ActiveRecord] public class BlackListDevice : Zidentyfikowane { [Nieruchomości] publicznego wirtualny łańcuch DeviceReference {get; zestaw; } } –
A kiedy pojawi się ten błąd? Podczas kompilacji? podczas pracy? Czy twój plik naprawdę zawiera jakiekolwiek dane i czy zawiera dane pasujące do twojej struktury rekordów? –