3 Kasım 2017 Cuma

SqlBulkCopy Sınıfı

Giriş
Bu sınıf bir DataTable nesnesini - örneğin Excel'den doldurulmuş olsun - veritabanındaki tabloya kopyalar.

Kullanım
Şöyle yaparız
SqlConnection con = ...;
con.Open();
SqlTransaction transaction = con.BeginTransaction();
SqlBulkCopy bulkCopy = new SqlBulkCopy(con, SqlBulkCopyOptions.KeepIdentity, transaction);
...
bulkCopy.WriteToServer(dt);
transaction.Commit();
con.Close();
Constructor - connection
Şöyle yaparız.
SqlConnection connection = ...

//Open bulkcopy connection.
SqlBulkCopy bulkcopy = new SqlBulkCopy(connection);
Constructor - connection + options + transaction
Şöyle yaparız
SqlConnection con = ...;
SqlTransaction transaction = con.BeginTransaction();
SqlBulkCopy bulkCopy = new SqlBulkCopy(con, SqlBulkCopyOptions.KeepIdentity, transaction);
BatchSize metodu
Şöyle yaparız
bulkCopy.BatchSize(10000);
ColumnMappings Alanı
Şöyle yaparız.
bulkcopy.ColumnMappings.Add("No", "Number"); 
DestinationTableName Alanı
Şöyle yaparız.
/Set destination table name to table previously created.
bulkcopy.DestinationTableName = "dbo.Table_1";
WriteToServer metodu
Verilen DataTable'daki satırları kopyalar. Şöyle yaparız.
DataTable dtExcelRecords = ...;
bulkcopy.WriteToServer(dtExcelRecords);

Hiç yorum yok:

Yorum Gönder