SqlBulkCopyColumnMappingCollection Clase

Definición

Colección de objetos SqlBulkCopyColumnMapping que hereda de CollectionBase.Collection of SqlBulkCopyColumnMapping objects that inherits from CollectionBase.

public ref class SqlBulkCopyColumnMappingCollection sealed : System::Collections::CollectionBase
public ref class SqlBulkCopyColumnMappingCollection sealed : System::Collections::IList
public sealed class SqlBulkCopyColumnMappingCollection : System.Collections.CollectionBase
public sealed class SqlBulkCopyColumnMappingCollection : System.Collections.IList
type SqlBulkCopyColumnMappingCollection = class
    inherit CollectionBase
type SqlBulkCopyColumnMappingCollection = class
    interface ICollection
    interface IEnumerable
    interface IList
Public NotInheritable Class SqlBulkCopyColumnMappingCollection
Inherits CollectionBase
Public NotInheritable Class SqlBulkCopyColumnMappingCollection
Implements IList
Herencia
SqlBulkCopyColumnMappingCollection
Herencia
SqlBulkCopyColumnMappingCollection
Implementaciones

Ejemplos

En el ejemplo siguiente se copian de forma masiva datos de una tabla de origen en la base de datos de ejemplo AdventureWorks a una tabla de destino en la misma base de datos.The following example bulk copies data from a source table in the AdventureWorks sample database to a destination table in the same database. Aunque el número de columnas del destino coincide con el número de columnas del origen, los nombres de columna y las posiciones ordinales no coinciden.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 se agregan a SqlBulkCopyColumnMappingCollection para el SqlBulkCopy objeto con el fin de crear un mapa de columnas para la copia masiva.SqlBulkCopyColumnMapping are added to the SqlBulkCopyColumnMappingCollection for the SqlBulkCopy object to create a column map for the bulk copy.

Importante

Este ejemplo no se ejecutará a menos que haya creado las tablas de trabajo como se describe en el ejemplo de configuración de la copia masiva.This sample will not run unless you have created the work tables as described in Bulk Copy Example Setup. Este código se proporciona para mostrar la sintaxis para usar SqlBulkCopy.This code is provided to demonstrate the syntax for using SqlBulkCopy only. Si las tablas de origen y de destino se encuentran en la misma instancia de SQL Server, es más fácil y rápido usar una instrucción Transact-SQL INSERT … SELECT para copiar los datos.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

Comentarios

Las asignaciones de columnas definen la asignación entre el origen de datos y la tabla de destino.Column mappings define the mapping between data source and the target table.

Si no se definen las asignaciones, es decir, la ColumnMappings colección está vacía, las columnas se asignan implícitamente según la posición ordinal.If mappings are not defined - that is, the ColumnMappings collection is empty - the columns are mapped implicitly based on ordinal position. Para que esto funcione, los esquemas de origen y destino deben coincidir.For this to work, source and target schemas must match. Si no es así, InvalidOperationException se produce una excepción.If they do not, an InvalidOperationException is thrown.

Si la ColumnMappings colección no está vacía, no es necesario especificar todas las columnas presentes en el origen de datos.If the ColumnMappings collection is not empty, not every column present in the data source has to be specified. Los que no están asignados por la colección se omiten.Those not mapped by the collection are ignored.

Puede hacer referencia a las columnas de origen y de destino tanto por nombre como por ordinal.You can refer to source and target columns by either name or ordinal. Puede mezclar referencias de columna por nombre y por ordinal en la misma colección de asignaciones.You can mix by-name and by-ordinal column references in the same mappings collection.

Propiedades

Capacity

Obtiene o establece el número de elementos que puede contener CollectionBase.Gets or sets the number of elements that the CollectionBase can contain.

(Heredado de CollectionBase)
Count

Obtiene el número de elementos incluidos en SqlBulkCopyColumnMappingCollection.Gets the number of elements contained in the SqlBulkCopyColumnMappingCollection.

Count

Obtiene el número de elementos contenidos en la instancia de CollectionBase.Gets the number of elements contained in the CollectionBase instance. Esta propiedad no se puede invalidar.This property cannot be overridden.

(Heredado de CollectionBase)
InnerList

Obtiene una colección ArrayList que contiene la lista de elementos incluidos en la instancia de CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Heredado de CollectionBase)
Item[Int32]

Obtiene el objeto SqlBulkCopyColumnMapping en el índice especificado.Gets the SqlBulkCopyColumnMapping object at the specified index.

List

Obtiene una colección IList que contiene la lista de elementos incluidos en la instancia de CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Heredado de CollectionBase)

Métodos

Add(Int32, Int32)

Crea un nuevo objeto SqlBulkCopyColumnMapping y lo agrega a la colección, utilizando las posiciones ordinales para especificar las columnas de origen y de destino.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using ordinals to specify both source and destination columns.

Add(Int32, String)

Crea un nuevo objeto SqlBulkCopyColumnMapping y lo agrega a la colección, utilizando una posición ordinal para la columna de origen y una cadena para la columna de destino.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)

Agrega la asignación especificada a la colección SqlBulkCopyColumnMappingCollection.Adds the specified mapping to the SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

Crea un nuevo objeto SqlBulkCopyColumnMapping y lo agrega a la colección, utilizando un nombre de columna para describir la columna de origen y una posición ordinal para especificar la columna de destino.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)

Crea un nuevo objeto SqlBulkCopyColumnMapping y lo agrega a la colección, utilizando nombres de columna para especificar las columnas de origen y de destino.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using column names to specify both source and destination columns.

Clear()

Borra el contenido de la colección.Clears the contents of the collection.

Contains(SqlBulkCopyColumnMapping)

Obtiene un valor que indica si existe un objeto SqlBulkCopyColumnMapping especificado en la colección.Gets a value indicating whether a specified SqlBulkCopyColumnMapping object exists in the collection.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

Copia los elementos de SqlBulkCopyColumnMappingCollection en una matriz de elementos SqlBulkCopyColumnMapping, empezando en un índice concreto.Copies the elements of the SqlBulkCopyColumnMappingCollection to an array of SqlBulkCopyColumnMapping items, starting at a particular index.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetEnumerator()

Devuelve un enumerador que recorre en iteración una colección.Returns an enumerator that iterates through a collection.

GetEnumerator()

Devuelve un enumerador que recorre en iteración la instancia de CollectionBase.Returns an enumerator that iterates through the CollectionBase instance.

(Heredado de CollectionBase)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IndexOf(SqlBulkCopyColumnMapping)

Obtiene el índice del objeto SqlBulkCopyColumnMapping especificado.Gets the index of the specified SqlBulkCopyColumnMapping object.

Insert(Int32, SqlBulkCopyColumnMapping)

Inserta una nueva SqlBulkCopyColumnMapping en el índice especificado.Insert a new SqlBulkCopyColumnMapping at the index specified.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnClear()

Realiza procesos personalizados adicionales al borrar el contenido de la instancia CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Heredado de CollectionBase)
OnClearComplete()

Realiza procesos personalizados adicionales después de borrar el contenido de la instancia de CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Heredado de CollectionBase)
OnInsert(Int32, Object)

Realiza procesos personalizados adicionales antes de insertar un nuevo elemento en la instancia de CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Heredado de CollectionBase)
OnInsertComplete(Int32, Object)

Realiza procesos personalizados adicionales después de insertar un nuevo elemento en la instancia de CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Heredado de CollectionBase)
OnRemove(Int32, Object)

Realiza procesos de personalización adicionales al quitar un elemento de la instancia de CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Heredado de CollectionBase)
OnRemoveComplete(Int32, Object)

Realiza procesos personalizados adicionales después de quitar un elemento de la instancia de CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Heredado de CollectionBase)
OnSet(Int32, Object, Object)

Realiza procesos personalizados adicionales antes de establecer un valor en la instancia de CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Heredado de CollectionBase)
OnSetComplete(Int32, Object, Object)

Realiza procesos personalizados adicionales después de establecer un valor en la instancia de CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Heredado de CollectionBase)
OnValidate(Object)

Realiza procesos de personalización adicionales al validar un valor.Performs additional custom processes when validating a value.

(Heredado de CollectionBase)
Remove(SqlBulkCopyColumnMapping)

Quita el elemento SqlBulkCopyColumnMapping especificado de la colección SqlBulkCopyColumnMappingCollection.Removes the specified SqlBulkCopyColumnMapping element from the SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

Quita de la colección la asignación en el índice especificado.Removes the mapping at the specified index from the collection.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los elementos de ICollection en Array, empezando por un índice determinado de Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

ICollection.CopyTo(Array, Int32)

Copia la totalidad de CollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(Heredado de CollectionBase)
ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ICollection está sincronizado (es seguro para subprocesos).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz CollectionBase está sincronizado (es seguro para subprocesos).Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(Heredado de CollectionBase)
ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a CollectionBase.Gets an object that can be used to synchronize access to the CollectionBase.

(Heredado de CollectionBase)
IList.Add(Object)

Agrega un elemento a IList.Adds an item to the IList.

IList.Add(Object)

Agrega un objeto al final de CollectionBase.Adds an object to the end of the CollectionBase.

(Heredado de CollectionBase)
IList.Contains(Object)

Determina si IList contiene un valor específico.Determines whether the IList contains a specific value.

IList.Contains(Object)

Determina si CollectionBase contiene un elemento específico.Determines whether the CollectionBase contains a specific element.

(Heredado de CollectionBase)
IList.IndexOf(Object)

Determina el índice de un elemento específico de IList.Determines the index of a specific item in the IList.

IList.IndexOf(Object)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección CollectionBase.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(Heredado de CollectionBase)
IList.Insert(Int32, Object)

Inserta un elemento en la interfaz IList, en el índice especificado.Inserts an item to the IList at the specified index.

IList.Insert(Int32, Object)

Inserta un elemento en CollectionBase en el índice especificado.Inserts an element into the CollectionBase at the specified index.

(Heredado de CollectionBase)
IList.IsFixedSize

Obtiene un valor que indica si la colección IList tiene un tamaño fijo.Gets a value indicating whether the IList has a fixed size.

IList.IsFixedSize

Obtiene un valor que indica si la interfaz CollectionBase tiene un tamaño fijo.Gets a value indicating whether the CollectionBase has a fixed size.

(Heredado de CollectionBase)
IList.IsReadOnly

Obtiene un valor que indica si IList es de solo lectura.Gets a value indicating whether the IList is read-only.

IList.IsReadOnly

Obtiene un valor que indica si CollectionBase es de solo lectura.Gets a value indicating whether the CollectionBase is read-only.

(Heredado de CollectionBase)
IList.Item[Int32]

Obtiene o establece el elemento en el índice especificado.Gets or sets the element at the specified index.

IList.Item[Int32]

Obtiene o establece el elemento en el índice especificado.Gets or sets the element at the specified index.

(Heredado de CollectionBase)
IList.Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz IList.Removes the first occurrence of a specific object from the IList.

IList.Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz CollectionBase.Removes the first occurrence of a specific object from the CollectionBase.

(Heredado de CollectionBase)

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a

Consulte también