2009-10-13 13 views

cevap

3

FileHelpers adlı bir iyi kütüphane var, a)% 100 ücretsiz, b) tam olarak C#, ve kolayca metin tabanlı bir dosyayı alabilir - virgülle ayrılmış, sekmeyle ayrılmış, sabit genişlik ve böylece üzerinde.

CSV dosyanızı bellek içi nesnelere yüklemek ve bunları ADO.NET kullanarak SQL Server'da saklamak için bunu kullanmayla ilgili hiçbir sorun yaşamamanız gerekir.

FileHelpers'da, önce verilerinizi tanımlayan bir sınıfa sahip olmanız gerekir, örn. Bir "Müşteri" sınıfı (veya ithal etmekte olduğunuz her şey). Eğer müşteri dizinizi aldıktan sonra

FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>(); 
Customer[] dataLoaded = engine.ReadFile(fileName); 

, ya sadece yinelemek ve (tipik bir hareket içinde) verileri kaydetmek ile:

Sonra böyle kod şey kullanarak bir dosyayı alabilirsiniz Örneğin Bir saklı yordam veya bir ad-hoc SQL sorgusu:

using(TransactionScope ts = new TransactionScope()) 
{ 
    foreach(Customer c in dataLoadad) 
    { 
     SaveCustomer(c); 
    } 

    ts.Complete(); 
} 

veya bir DataTable'a müşteri dizisi dönüştürmek ve SQL Server veritabanına o eklemek toplu SqlBulkCopy kullanabilirsiniz - birçok seçenek vardır!

GÜNCELLEME:
sizin BlackListDevice sınıfına bu özelliklerle bir [DelimitedRecord] veya başka var mı?

+0

Merhaba, cevabınız için teşekkürler. Dosya yardımcılarına bir göz attım. ActiveRecord ve NHibernate kullanıyorum. Bu hatayı alıyorum Kayıt sınıfında kayıt yok. bu hatta FileHelperEngine engine = new FileHelperEngine (typeof (BlackListDevice)); Yardımlarınız için tekrar teşekkürler. –

+0

Evet, benim sınıf bu [DelimitedRecord (" ")] benziyor [ActiveRecord] public class BlackListDevice: Belirlenen { [Mülkiyet] kamu sanal dize DeviceReference {get; set; } –

+0

Ve bu hatayı ne zaman alıyorsunuz? Derlerken? çalışırken Dosyanız gerçekten herhangi bir veri içeriyor mu ve kayıt yapınızla eşleşen verileri içeriyor mu? –

0

Dosya yüklemeleri için ayrı bir sınıf ekleyerek bunu düzeltin, FileHelper'ı kullanarak bir çekicilik gibi çalışır.

İlgili konular