SqlBulkCopyColumnMappingCollection Classe

Définition

Collection d'objets SqlBulkCopyColumnMapping qui héritent de 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
Héritage
SqlBulkCopyColumnMappingCollection

Exemples

L’exemple suivant copie en bloc des données d’une table source de l’exemple de base de données AdventureWorks vers une table de destination dans la même base de données.The following example bulk copies data from a source table in the AdventureWorks sample database to a destination table in the same database. Bien que le nombre de colonnes dans la destination corresponde au nombre de colonnes dans la source, les noms de colonnes et les positions ordinales ne correspondent pas.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. SqlBulkCopyColumnMappingsont ajoutés au SqlBulkCopyColumnMappingCollection pour l' SqlBulkCopy objet afin de créer un mappage de colonnes pour la copie en bloc.SqlBulkCopyColumnMapping are added to the SqlBulkCopyColumnMappingCollection for the SqlBulkCopy object to create a column map for the bulk copy.

Important

Cet exemple ne s’exécute pas, sauf si vous avez créé les tables de travail comme décrit dans l' exemple de configuration de copie en bloc.This sample will not run unless you have created the work tables as described in Bulk Copy Example Setup. Ce code est fourni pour illustrer la syntaxe de l’utilisation de SqlBulkCopy uniquement.This code is provided to demonstrate the syntax for using SqlBulkCopy only. Si les tables source et de destination se trouvent dans la même instance de SQL Server, il est plus facile et plus rapide d' INSERT … SELECT utiliser une instruction Transact-SQL pour copier les données.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

Remarques

Les mappages de colonnes définissent le mappage entre la source de données et la table cible.Column mappings define the mapping between data source and the target table.

Si les mappages ne sont pas définis, c’est-à-dire que ColumnMappings la collection est vide, les colonnes sont mappées implicitement en fonction de la position ordinale.If mappings are not defined - that is, the ColumnMappings collection is empty - the columns are mapped implicitly based on ordinal position. Pour que cela fonctionne, les schémas source et cible doivent correspondre.For this to work, source and target schemas must match. Si ce n’est pas le InvalidOperationException cas, une exception est levée.If they do not, an InvalidOperationException is thrown.

Si la ColumnMappings collection n’est pas vide, toutes les colonnes présentes dans la source de données doivent être spécifiées.If the ColumnMappings collection is not empty, not every column present in the data source has to be specified. Ceux qui ne sont pas mappés par la collection sont ignorés.Those not mapped by the collection are ignored.

Vous pouvez faire référence aux colonnes source et cible par nom ou ordinal.You can refer to source and target columns by either name or ordinal. Vous pouvez mélanger des références de colonnes par nom et par ordinal dans la même collection de mappages.You can mix by-name and by-ordinal column references in the same mappings collection.

Propriétés

Capacity

Obtient ou définit le nombre d'éléments que CollectionBase peut contenir.Gets or sets the number of elements that the CollectionBase can contain.

(Hérité de CollectionBase)
Count
InnerList

Obtient ArrayList contenant la liste des éléments dans l'instance de CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Hérité de CollectionBase)
Item[Int32]

Obtient l’objet SqlBulkCopyColumnMapping à l’index spécifié.Gets the SqlBulkCopyColumnMapping object at the specified index.

List

Obtient IList contenant la liste des éléments dans l'instance de CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Hérité de CollectionBase)

Méthodes

Add(Int32, Int32)

Crée un nouveau SqlBulkCopyColumnMapping et l'ajoute à la collection à l'aide d'ordinaux pour spécifier les colonnes source et de destination.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using ordinals to specify both source and destination columns.

Add(Int32, String)

Crée un nouveau SqlBulkCopyColumnMapping et l'ajoute à la collection à l'aide d'un ordinal pour la colonne source et d'une chaîne pour la colonne de destination.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)

Ajoute le mappage spécifié à SqlBulkCopyColumnMappingCollection.Adds the specified mapping to the SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

Crée un nouveau SqlBulkCopyColumnMapping et l'ajoute à la collection à l'aide d'un nom de colonne pour décrire la colonne source et d'un ordinal pour spécifier la colonne de destination.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)

Crée un nouveau SqlBulkCopyColumnMapping et l'ajoute à la collection à l'aide de noms de colonnes pour spécifier les colonnes source et de destination.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using column names to specify both source and destination columns.

Clear()

Efface le contenu de la collection.Clears the contents of the collection.

Contains(SqlBulkCopyColumnMapping)

Obtient une valeur indiquant s'il existe un objet SqlBulkCopyColumnMapping spécifié dans la collection.Gets a value indicating whether a specified SqlBulkCopyColumnMapping object exists in the collection.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

Copie les éléments de SqlBulkCopyColumnMappingCollection dans un tableau d'éléments SqlBulkCopyColumnMapping, en commençant à un index particulier.Copies the elements of the SqlBulkCopyColumnMappingCollection to an array of SqlBulkCopyColumnMapping items, starting at a particular index.

Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetEnumerator()
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IndexOf(SqlBulkCopyColumnMapping)

Obtient l'index de l'objet SqlBulkCopyColumnMapping spécifié.Gets the index of the specified SqlBulkCopyColumnMapping object.

Insert(Int32, SqlBulkCopyColumnMapping)

Insérez un nouveau SqlBulkCopyColumnMapping à l'index spécifié.Insert a new SqlBulkCopyColumnMapping at the index specified.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnClear()

Effectue des traitements personnalisés supplémentaires pendant l’effacement du contenu de l’instance de CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Hérité de CollectionBase)
OnClearComplete()

Exécute des processus personnalisés supplémentaires après l'effacement du contenu de l'instance de CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Hérité de CollectionBase)
OnInsert(Int32, Object)

Exécute les processus personnalisés supplémentaires avant l'insertion d'un nouvel élément dans l'instance de CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Hérité de CollectionBase)
OnInsertComplete(Int32, Object)

Exécute les processus personnalisés supplémentaires après l'insertion d'un nouvel élément dans l'instance de CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Hérité de CollectionBase)
OnRemove(Int32, Object)

Exécute des processus personnalisés supplémentaires lors de la suppression d'un élément de l'instance de CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Hérité de CollectionBase)
OnRemoveComplete(Int32, Object)

Exécute des processus personnalisés supplémentaires après la suppression d'un élément de l'instance de CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Hérité de CollectionBase)
OnSet(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires avant la définition d'une valeur dans l'instance de CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Hérité de CollectionBase)
OnSetComplete(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires après la définition d'une valeur dans l'instance de CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Hérité de CollectionBase)
OnValidate(Object)

Exécute des processus personnalisés supplémentaires lors de la validation d'une valeur.Performs additional custom processes when validating a value.

(Hérité de CollectionBase)
Remove(SqlBulkCopyColumnMapping)

Supprime l'élément SqlBulkCopyColumnMapping spécifié de SqlBulkCopyColumnMappingCollection.Removes the specified SqlBulkCopyColumnMapping element from the SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

Supprime le mappage de la collection à l'index spécifié.Removes the mapping at the specified index from the collection.

ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)

Implémentations d’interfaces explicites

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)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

S’applique à

Voir aussi