SqlBulkCopyColumnMappingCollection 클래스

정의

SqlBulkCopyColumnMapping에서 상속한 CollectionBase 개체의 컬렉션입니다.Collection of SqlBulkCopyColumnMapping objects that inherits from CollectionBase.

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
상속
SqlBulkCopyColumnMappingCollection

예제

원본 테이블에서 데이터를 다음 예제에서는 대량 복사 합니다 AdventureWorks 동일한 데이터베이스에서 대상 테이블에 샘플 데이터베이스.The following example bulk copies data from a source table in the AdventureWorks sample database to a destination table in the same database. 대상의 열 수가 일치 원본에서 열 수 있지만 열 이름 및 서 수 위치 일치 하지 않습니다.Although the number of columns in the destination matches the number of columns in the source, the column names and ordinal positions do not match. SqlBulkCopyColumnMapping 에 추가 되는 SqlBulkCopyColumnMappingCollection 에 대 한는 SqlBulkCopy 대량 복사에 대 한 열 지도 만들 개체입니다.SqlBulkCopyColumnMapping are added to the SqlBulkCopyColumnMappingCollection for the SqlBulkCopy object to create a column map for the bulk copy.

중요

이 샘플에 설명 된 대로 작업 테이블을 만든 경우가 아니면 실행 되지 것입니다 대량 복사 예제 설정합니다.This sample will not run unless you have created the work tables as described in Bulk Copy Example Setup. 이 코드는 사용 하는 구문을 보여 주기 위해 제공 됩니다 SqlBulkCopy 만 합니다.This code is provided to demonstrate the syntax for using SqlBulkCopy only. 쉽고 빠르게 TRANSACT-SQL을 사용 하는 원본 테이블과 대상 테이블에 동일한 SQL Server 인스턴스에 있는 경우 INSERT … SELECT 문은 데이터를 복사 합니다.If the source and destination tables are in the same SQL Server instance, it is easier and faster to use a Transact-SQL INSERT … SELECT statement to copy the data.

using System.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;";
    }
}
Imports System.Data.SqlClient

Module Module1
    Sub Main()
        Dim connectionString As String = GetConnectionString()

        ' Open a connection to the AdventureWorks database.
        Using sourceConnection As SqlConnection = _
           New SqlConnection(connectionString)
            sourceConnection.Open()

            ' Perform an initial count on the destination table.
            Dim commandRowCount As New SqlCommand( _
            "SELECT COUNT(*) FROM dbo.BulkCopyDemoDifferentColumns;", _
                sourceConnection)
            Dim countStart As Long = _
               System.Convert.ToInt32(commandRowCount.ExecuteScalar())
            Console.WriteLine("Starting row count = {0}", countStart)

            ' Get data from the source table as a SqlDataReader.
            Dim commandSourceData As SqlCommand = New SqlCommand( _
               "SELECT ProductID, Name, ProductNumber " & _
               "FROM Production.Product;", sourceConnection)
            Dim reader As SqlDataReader = commandSourceData.ExecuteReader

            ' Set up the bulk copy object.
            Using bulkCopy As SqlBulkCopy = 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 ex As Exception
                    Console.WriteLine(ex.Message)

                Finally
                    ' Close the SqlDataReader. The SqlBulkCopy
                    ' object is automatically closed at the end
                    ' of the Using block.
                    reader.Close()
                End Try
            End Using

            ' Perform a final count on the destination table
            ' to see how many rows were added.
            Dim countEnd As Long = _
                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()
        End Using
    End Sub

    Private Function GetConnectionString() As String
        ' 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;"
    End Function
End Module

설명

열 매핑은 데이터 원본 및 대상 테이블 간의 매핑을 정의합니다.Column mappings define the mapping between data source and the target table.

매핑이 정의 되지 않은 경우, ColumnMappings 즉 컬렉션이 비어 있는 경우 열은 서 수 위치에 따라 암시적으로 매핑됩니다.If mappings are not defined - that is, the ColumnMappings collection is empty - the columns are mapped implicitly based on ordinal position. 이렇게 하려면, 원본 및 대상 스키마 일치 해야 합니다.For this to work, source and target schemas must match. 그렇지 않은 경우는 InvalidOperationException throw 됩니다.If they do not, an InvalidOperationException is thrown.

경우는 ColumnMappings 컬렉션이 비어 있지 않으면, 데이터 원본에 있는 모든 열에 지정 해야 합니다.If the ColumnMappings collection is not empty, not every column present in the data source has to be specified. 컬렉션에 매핑되지 않은 무시 됩니다.Those not mapped by the collection are ignored.

이름 또는 서 수 소스 및 대상 열을 참조할 수 있습니다.You can refer to source and target columns by either name or ordinal. 이름별와 동일한 매핑 컬렉션에서 서 수 열 참조를 혼합할 수 있습니다.You can mix by-name and by-ordinal column references in the same mappings collection.

속성

Capacity

CollectionBase에 포함될 수 있는 요소의 수를 가져오거나 설정합니다.Gets or sets the number of elements that the CollectionBase can contain.

(다음에서 상속됨 CollectionBase)
Count
InnerList

가져옵니다는 ArrayList 의 요소 목록을 포함 하는 CollectionBase 인스턴스.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
Item[Int32]

지정된 인덱스의 SqlBulkCopyColumnMapping 개체를 가져옵니다.Gets the SqlBulkCopyColumnMapping object at the specified index.

List

가져옵니다는 IList 의 요소 목록을 포함 하는 CollectionBase 인스턴스.Gets an IList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)

메서드

Add(Int32, Int32)

소스 및 대상 열을 모두 지정하는 서수를 사용하여 새 SqlBulkCopyColumnMapping을 만들어 컬렉션에 추가합니다.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using ordinals to specify both source and destination columns.

Add(Int32, String)

소스 열에 대한 서수와 대상 열에 대한 문자열을 사용하여 새 SqlBulkCopyColumnMapping을 만들어 컬렉션에 추가합니다.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using an ordinal for the source column and a string for the destination column.

Add(SqlBulkCopyColumnMapping)

지정된 매핑을 SqlBulkCopyColumnMappingCollection에 추가합니다.Adds the specified mapping to the SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

소스 열을 설명하는 열 이름과 대상 열을 지정하는 서수를 사용하여 새 SqlBulkCopyColumnMapping을 만들어 컬렉션에 추가합니다.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using a column name to describe the source column and an ordinal to specify the destination column.

Add(String, String)

소스 및 대상 열을 모두 지정하는 열 이름을 사용하여 새 SqlBulkCopyColumnMapping을 만들어 컬렉션에 추가합니다.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using column names to specify both source and destination columns.

Clear()

컬렉션의 내용을 지웁니다.Clears the contents of the collection.

Contains(SqlBulkCopyColumnMapping)

지정된 SqlBulkCopyColumnMapping 개체가 컬렉션에 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether a specified SqlBulkCopyColumnMapping object exists in the collection.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

SqlBulkCopyColumnMappingCollection의 요소를 SqlBulkCopyColumnMapping 항목 배열의 특정 인덱스에서 시작하는 위치에 복사합니다.Copies the elements of the SqlBulkCopyColumnMappingCollection to an array of SqlBulkCopyColumnMapping items, starting at a particular index.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetEnumerator()
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IndexOf(SqlBulkCopyColumnMapping)

지정된 SqlBulkCopyColumnMapping 개체의 인덱스를 가져옵니다.Gets the index of the specified SqlBulkCopyColumnMapping object.

Insert(Int32, SqlBulkCopyColumnMapping)

SqlBulkCopyColumnMapping을 지정된 인덱스에 삽입합니다.Insert a new SqlBulkCopyColumnMapping at the index specified.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnClear()

CollectionBase 인스턴스의 콘텐츠를 지운 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnClearComplete()

내용을 지운 후 사용자 지정 프로세스를 추가로 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnInsert(Int32, Object)

새 요소를 삽입 하기 전에 추가로 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnInsertComplete(Int32, Object)

새 요소를 삽입 한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnRemove(Int32, Object)

요소를 제거 하는 경우 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes when removing an element from the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnRemoveComplete(Int32, Object)

요소를 제거한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after removing an element from the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnSet(Int32, Object, Object)

에 값을 설정 하기 전에 추가로 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes before setting a value in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnSetComplete(Int32, Object, Object)

값을 설정한 후 추가 사용자 지정 프로세스를 수행 합니다 CollectionBase 인스턴스.Performs additional custom processes after setting a value in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnValidate(Object)

값 유효성을 검사할 때 추가로 사용자 지정 프로세스를 수행 합니다.Performs additional custom processes when validating a value.

(다음에서 상속됨 CollectionBase)
Remove(SqlBulkCopyColumnMapping)

SqlBulkCopyColumnMapping에서 지정된 SqlBulkCopyColumnMappingCollection요소를 제거합니다.Removes the specified SqlBulkCopyColumnMapping element from the SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

컬렉션에서 지정된 인덱스의 매핑을 제거합니다.Removes the mapping at the specified index from the collection.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.CopyTo(Array, Int32)
ICollection.IsSynchronized
ICollection.SyncRoot
IList.Add(Object)
IList.Contains(Object)
IList.IndexOf(Object)
IList.Insert(Int32, Object)
IList.IsFixedSize
IList.IsReadOnly
IList.Item[Int32]
IList.Remove(Object)

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상

추가 정보