C# SQL Bulk Insert Nasıl Yapılır?, yazım ile c# eğitim setime devam ediyorum. Bu ders, eğitim setime eklediğim 93. ders oluyor. Bu dersimizde c# projelerimizde sql bulk insert ‘i nasıl yapacağımızı göreceğiz.
NOT: Bu ders sadece, C# Datatable Bulk Insert işlemi içermektedir ve sadece C# kodları ile yapılmıştır.
C# SQL Bulk Insert Nasıl Yapılır?
Bulk Insert into SQL / Bulk Insert into SQL from C#
Bulk Insert, SQL 2008 versiyonundan sonra kullanılabilmektedir.
Bu sql bulk insert’i önce bir açıklayalım. SQL Bulk insert ile verileri satır satır değil tablo olarak ekleriz. Yani bir veri grubunu tek seferde bir tabloya basacağız. Bu derste veri grubu olarak datatable kullanacağız.
C# Datatable Bulk Insert / Bulk Insert from a C# DataTable
Şimdi burada sql bağlantı kodlarını vermeye gerek duymuyorum. Tüm derslerimi incelediyseniz, sql işlemleri için hazırlanmış bir bağlantı class’ı kullandığımı biliyorsunuzdur. Bu dersimizin içeriği olan bulk insert işlemini de bu class içerisine aldım ve oradan kullanacağım. Bu sebeple vereceğim kodlarda bu class’tan alınan kodlar olacak.
public string BulkInsert(DataTable dt , string KaydedilecekTAbloAdı) { using (SqlBulkCopy bulkCopy = new SqlBulkCopy(Connection)) { bulkCopy.DestinationTableName = KaydedilecekTAbloAdı; try { bulkCopy.WriteToServer(dt); return ("Aktarım Tamamlandı"); } catch (Exception ex) { return (ex.Message); } } }
Kodlarımız hepsi yukarıda gördüğünüz kadardır. Burada işi yapan kısım, SqlBulkCopy.WriteToServer Method kısmıdır.
Metodumuz iki parametre alıyor. İlk olarak verilerin yer aldığı datatable ve verilerin aktarılacağı tablonun adı. Hepsi bu kadar. Burada dikkat etmeniz gereken kısım şudur. Tablonuzdaki kolonların veri tipleri ile datatable’deki kolonların veri tipleri aynı olma zorundadır. Kolon sayısı konusunda emin değilim ama verilerin aktarılacağı tablodaki kolon sayısının fazla olması yada datatabledeki kolonların sayısının fazla olması bir sorun çıkaracağını düşünmüyorum. Çünkü verilerin aktarılacağı bir kolon yok ise veriler aktarılmaz.
Bunu denemedim. Zaten mantık olarak, tablomuzu açarken bunlara dikkat ederek açarsınız diye düşünüyorum. Bir şekilde sabit değilse de siz testlerinizi yaparsınız.
Tablo adımızı ve ve datableyi gönderdikten sonra, işlemi yapmaya başlayacak. Bir hata çıkarsa da hatayı göstersin diye de try catch kontrolü koyduk.
Ek olarak işlem için açık bir bağlantı gerektiriyor. Kodlarımız zaten bağlantı class’ında olduğundan connection nesnemizi bağlantı için direk olarak verdik.
C# SQL Bulk Insert Nasıl Yapılır? yazımızda bu kadar dostlar. Diğer derslerimizde görüşmek üzere.
C Sharp Eğitim Seti ve ERP Programlama eğitimi sayfasına gitmek için tıklayınız.
Sağlıcakla ve takipte kalın.