SqlBulkCopyColumnMappingCollection Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
'den SqlBulkCopyColumnMappingCollectionBasedevralan nesnelerin koleksiyonu.
public ref class SqlBulkCopyColumnMappingCollection sealed : System::Collections::CollectionBase
public sealed class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase
type SqlBulkCopyColumnMappingCollection = class
inherit CollectionBase
Public NotInheritable Class SqlBulkCopyColumnMappingCollection
Inherits CollectionBase
- Devralma
-
SqlBulkCopyColumnMappingCollection
Örnekler
Aşağıdaki örnek , AdventureWorks örnek veritabanındaki bir kaynak tablodan aynı veritabanındaki hedef tabloya verileri toplu olarak kopyalar. Hedefteki sütun sayısı kaynaktaki sütun sayısıyla eşleşse de, sütun adları ve sıra konumları eşleşmez. SqlBulkCopyColumnMappingtoplu kopyalama için sütun eşlemesi SqlBulkCopy oluşturmak üzere nesnesine eklenirSqlBulkCopyColumnMappingCollection.
Önemli
Bu örnek, Toplu Kopyalama Örneği Kurulumu'nda açıklandığı gibi iş tablolarını oluşturmadığınız sürece çalışmaz.
Bu kod, yalnızca SqlBulkCopy kullanımına yönelik söz dizimini göstermek için sağlanır. Kaynak ve hedef tablolar aynı SQL Server örneğindeyse, transact-SQL INSERT … SELECT deyimini kullanarak verileri kopyalamak daha kolay ve daha hızlıdır.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = GetConnectionString();
// Open a sourceConnection to the AdventureWorks database.
using (SqlConnection sourceConnection =
new SqlConnection(connectionString))
{
sourceConnection.Open();
// Perform an initial count on the destination table.
SqlCommand commandRowCount = new SqlCommand(
"SELECT COUNT(*) FROM " +
"dbo.BulkCopyDemoDifferentColumns;",
sourceConnection);
long countStart = System.Convert.ToInt32(
commandRowCount.ExecuteScalar());
Console.WriteLine("Starting row count = {0}", countStart);
// Get data from the source table as a SqlDataReader.
SqlCommand commandSourceData = new SqlCommand(
"SELECT ProductID, Name, " +
"ProductNumber " +
"FROM Production.Product;", sourceConnection);
SqlDataReader reader =
commandSourceData.ExecuteReader();
// Set up the bulk copy object.
using (SqlBulkCopy bulkCopy =
new SqlBulkCopy(connectionString))
{
bulkCopy.DestinationTableName =
"dbo.BulkCopyDemoDifferentColumns";
// The column order in the source doesn't match the order
// in the destination, so ColumnMappings must be defined.
bulkCopy.ColumnMappings.Add("ProductID", "ProdID");
bulkCopy.ColumnMappings.Add("Name", "ProdName");
bulkCopy.ColumnMappings.Add("ProductNumber", "ProdNum");
// Write from the source to the destination.
try
{
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
// Close the SqlDataReader. The SqlBulkCopy
// object is automatically closed at the end
// of the using block.
reader.Close();
}
}
// Perform a final count on the destination
// table to see how many rows were added.
long countEnd = System.Convert.ToInt32(
commandRowCount.ExecuteScalar());
Console.WriteLine("Ending row count = {0}", countEnd);
Console.WriteLine("{0} rows were added.", countEnd - countStart);
Console.WriteLine("Press Enter to finish.");
Console.ReadLine();
}
}
private static string GetConnectionString()
// To avoid storing the sourceConnection string in your code,
// you can retrieve it from a configuration file.
{
return "Data Source=(local); " +
" Integrated Security=true;" +
"Initial Catalog=AdventureWorks;";
}
}
Açıklamalar
Sütun eşlemeleri, veri kaynağı ile hedef tablo arasındaki eşlemeyi tanımlar.
Eşlemeler tanımlanmamışsa ( yani koleksiyon ColumnMappings boşsa) sütunlar sıralı konuma göre örtük olarak eşlenir. Bunun çalışması için kaynak ve hedef şemaların eşleşmesi gerekir. Aksi takdirde, bir InvalidOperationException atılır.
ColumnMappings Koleksiyon boş değilse, veri kaynağında bulunan her sütunun belirtilmesi gerekli değildir. Koleksiyon tarafından eşlenmeyenler yoksayılır.
Kaynak ve hedef sütunlara ada veya sıraya göre başvurabilirsiniz. Aynı eşleme koleksiyonunda ada ve sıralı sütun başvurularını karıştırabilirsiniz.
Özellikler
| Item[Int32] |
SqlBulkCopyColumnMapping Belirtilen dizindeki nesneyi alır. |
Yöntemler
| Add(Int32, Int32) |
Hem kaynak hem de hedef sütunları belirtmek için sıraları kullanarak yeni SqlBulkCopyColumnMapping bir oluşturur ve koleksiyona ekler. |
| Add(Int32, String) |
Kaynak sütun için bir sıra ve hedef sütun için bir dize kullanarak yeni SqlBulkCopyColumnMapping bir oluşturur ve bunu koleksiyona ekler. |
| Add(SqlBulkCopyColumnMapping) |
Belirtilen eşlemeyi öğesine SqlBulkCopyColumnMappingCollectionekler. |
| Add(String, Int32) |
Kaynak sütunu açıklamak için bir sütun adı ve hedef sütunu belirtmek için bir sıra kullanarak yeni SqlBulkCopyColumnMapping bir oluşturur ve bunu koleksiyona ekler. |
| Add(String, String) |
Hem kaynak hem de hedef sütunları belirtmek için sütun adlarını kullanarak yeni SqlBulkCopyColumnMapping bir oluşturur ve koleksiyona ekler. |
| Clear() |
Koleksiyonun içeriğini temizler. |
| Contains(SqlBulkCopyColumnMapping) |
Belirtilen SqlBulkCopyColumnMapping bir nesnenin koleksiyonda var olup olmadığını belirten bir değer alır. |
| CopyTo(SqlBulkCopyColumnMapping[], Int32) |
öğesinin SqlBulkCopyColumnMappingCollection öğelerini belirli bir dizinden SqlBulkCopyColumnMapping başlayarak bir öğe dizisine kopyalar. |
| IndexOf(SqlBulkCopyColumnMapping) |
Belirtilen SqlBulkCopyColumnMapping nesnenin dizinini alır. |
| Insert(Int32, SqlBulkCopyColumnMapping) |
Belirtilen dizine yeni SqlBulkCopyColumnMapping bir ekleyin. |
| Remove(SqlBulkCopyColumnMapping) |
Belirtilen SqlBulkCopyColumnMapping öğeyi öğesinden SqlBulkCopyColumnMappingCollectionkaldırır. |
| RemoveAt(Int32) |
Belirtilen dizindeki eşlemeyi koleksiyondan kaldırır. |