SqlBulkCopyColumnMappingCollection Classe

Definizione

Raccolta di oggetti SqlBulkCopyColumnMapping che ereditano dall'oggetto 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
Ereditarietà
SqlBulkCopyColumnMappingCollection
Ereditarietà
SqlBulkCopyColumnMappingCollection
Implementazioni

Esempio

L'esempio seguente esegue la copia bulk di dati da una tabella di origine nel database di esempio AdventureWorks a una tabella di destinazione nello stesso database.The following example bulk copies data from a source table in the AdventureWorks sample database to a destination table in the same database. Sebbene il numero di colonne nella destinazione corrisponda al numero di colonne nell'origine, i nomi delle colonne e le posizioni ordinali non corrispondono.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 vengono aggiunti a SqlBulkCopyColumnMappingCollection per l' SqlBulkCopy oggetto per creare una mappa delle colonne per la copia bulk.SqlBulkCopyColumnMapping are added to the SqlBulkCopyColumnMappingCollection for the SqlBulkCopy object to create a column map for the bulk copy.

Importante

Questo esempio non verrà eseguito a meno che non siano state create le tabelle di lavoro come descritto in configurazione di esempio per la copia bulk.This sample will not run unless you have created the work tables as described in Bulk Copy Example Setup. Il codice viene fornito solo per illustrare la sintassi relativa all'uso di SqlBulkCopy.This code is provided to demonstrate the syntax for using SqlBulkCopy only. Se le tabelle di origine e di destinazione si trovano nella stessa istanza di SQL Server, è più semplice e veloce utilizzare un'istruzione Transact-SQL INSERT … SELECT per copiare i dati.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

Commenti

I mapping delle colonne definiscono il mapping tra l'origine dati e la tabella di destinazione.Column mappings define the mapping between data source and the target table.

Se i mapping non sono definiti, ovvero la ColumnMappings raccolta è vuota, le colonne vengono mappate in modo implicito in base alla posizione ordinale.If mappings are not defined - that is, the ColumnMappings collection is empty - the columns are mapped implicitly based on ordinal position. Per il corretto funzionamento, gli schemi di origine e di destinazione devono corrispondere.For this to work, source and target schemas must match. In caso contrario, InvalidOperationException viene generata un'eccezione.If they do not, an InvalidOperationException is thrown.

Se la ColumnMappings raccolta non è vuota, è necessario specificare non tutte le colonne presenti nell'origine dati.If the ColumnMappings collection is not empty, not every column present in the data source has to be specified. Quelli non mappati dalla raccolta vengono ignorati.Those not mapped by the collection are ignored.

È possibile fare riferimento alle colonne di origine e di destinazione in base al nome o alla posizione ordinale.You can refer to source and target columns by either name or ordinal. È possibile combinare i riferimenti di colonna in base al nome e al numero ordinale nella stessa raccolta di mapping.You can mix by-name and by-ordinal column references in the same mappings collection.

Proprietà

Capacity

Ottiene o imposta il numero di elementi che CollectionBase può contenere.Gets or sets the number of elements that the CollectionBase can contain.

(Ereditato da CollectionBase)
Count

Ottiene il numero di elementi contenuti in SqlBulkCopyColumnMappingCollection.Gets the number of elements contained in the SqlBulkCopyColumnMappingCollection.

Count

Ottiene il numero di elementi contenuti nell'istanza di CollectionBase.Gets the number of elements contained in the CollectionBase instance. Questa proprietà non può essere sottoposta a override.This property cannot be overridden.

(Ereditato da CollectionBase)
InnerList

Ottiene un ArrayList contenente l'elenco degli elementi presenti nell'istanza CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Ereditato da CollectionBase)
Item[Int32]

Ottiene l'oggetto SqlBulkCopyColumnMapping in corrispondenza dell'indice specificato.Gets the SqlBulkCopyColumnMapping object at the specified index.

List

Ottiene un IList contenente l'elenco degli elementi presenti nell'istanza CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Ereditato da CollectionBase)

Metodi

Add(Int32, Int32)

Crea un nuovo oggetto SqlBulkCopyColumnMapping e lo aggiunge all'insieme, utilizzando gli ordinali per specificare le colonne di origine e destinazione.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using ordinals to specify both source and destination columns.

Add(Int32, String)

Crea un nuovo oggetto SqlBulkCopyColumnMapping e lo aggiunge all'insieme, utilizzando un ordinale per specificare la colonna di origine e una stringa per la colonna di destinazione.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)

Aggiunge il mapping specificato all'insieme SqlBulkCopyColumnMappingCollection.Adds the specified mapping to the SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

Crea un nuovo oggetto SqlBulkCopyColumnMapping e lo aggiunge all'insieme, utilizzando un nome di colonna per descrivere la colonna di origine e un ordinale per specificare la colonna di destinazione.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 nuovo oggetto SqlBulkCopyColumnMapping e lo aggiunge all'insieme, utilizzando i nomi di colonna per specificare le colonne di origine e destinazione.Creates a new SqlBulkCopyColumnMapping and adds it to the collection, using column names to specify both source and destination columns.

Clear()

Cancella il contenuto della raccolta.Clears the contents of the collection.

Contains(SqlBulkCopyColumnMapping)

Ottiene un valore che indica se nell'insieme esiste l'oggetto SqlBulkCopyColumnMapping specificato.Gets a value indicating whether a specified SqlBulkCopyColumnMapping object exists in the collection.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

Copia gli elementi dell'insieme SqlBulkCopyColumnMappingCollection in una matrice di elementi SqlBulkCopyColumnMapping, cominciando da un particolare indice.Copies the elements of the SqlBulkCopyColumnMappingCollection to an array of SqlBulkCopyColumnMapping items, starting at a particular index.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetEnumerator()

Restituisce un enumeratore che consente di eseguire l'iterazione di una raccolta.Returns an enumerator that iterates through a collection.

GetEnumerator()

Restituisce un enumeratore per lo scorrimento dell'istanza di CollectionBase.Returns an enumerator that iterates through the CollectionBase instance.

(Ereditato da CollectionBase)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IndexOf(SqlBulkCopyColumnMapping)

Ottiene l'indice dell'oggetto SqlBulkCopyColumnMapping specificato.Gets the index of the specified SqlBulkCopyColumnMapping object.

Insert(Int32, SqlBulkCopyColumnMapping)

Inserisce un nuovo oggetto SqlBulkCopyColumnMapping in corrispondenza dell'indice specificato.Insert a new SqlBulkCopyColumnMapping at the index specified.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnClear()

Esegue processi personalizzati aggiuntivi quando viene cancellato il contenuto dell'istanza di CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Ereditato da CollectionBase)
OnClearComplete()

Esegue procedure personalizzate aggiuntive prima di cancellare il contenuto dell'istanza di CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Ereditato da CollectionBase)
OnInsert(Int32, Object)

Esegue procedure personalizzate aggiuntive prima di inserire un nuovo elemento nell'istanza di CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Ereditato da CollectionBase)
OnInsertComplete(Int32, Object)

Esegue procedure personalizzate aggiuntive dopo aver inserito un nuovo elemento nell'istanza di CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Ereditato da CollectionBase)
OnRemove(Int32, Object)

Consente di eseguire procedure personalizzate aggiuntive durante l'eliminazione di un elemento dall'istanza CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Ereditato da CollectionBase)
OnRemoveComplete(Int32, Object)

Esegue procedure personalizzate aggiuntive dopo della rimozione di un elemento dall'istanza di CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Ereditato da CollectionBase)
OnSet(Int32, Object, Object)

Esegue procedure personalizzate aggiuntive prima di impostare un valore nell'istanza di CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Ereditato da CollectionBase)
OnSetComplete(Int32, Object, Object)

Esegue procedure personalizzate aggiuntive dopo aver impostato un valore nell'istanza di CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Ereditato da CollectionBase)
OnValidate(Object)

Esegue processi personalizzati aggiuntivi durante la convalida di un valore.Performs additional custom processes when validating a value.

(Ereditato da CollectionBase)
Remove(SqlBulkCopyColumnMapping)

Rimuove l'elemento SqlBulkCopyColumnMapping specificato dall'oggetto SqlBulkCopyColumnMappingCollection.Removes the specified SqlBulkCopyColumnMapping element from the SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

Rimuove il mapping dall'insieme in corrispondenza dell'indice specificato.Removes the mapping at the specified index from the collection.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.CopyTo(Array, Int32)

Copia gli elementi di ICollection in Array a partire da un particolare indice Array.Copies the elements of the ICollection to an Array, starting at a particular Array index.

ICollection.CopyTo(Array, Int32)

Copia l'intero oggetto CollectionBase in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(Ereditato da CollectionBase)
ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a ICollection è sincronizzato (thread-safe).Gets a value indicating whether access to the ICollection is synchronized (thread safe).

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a CollectionBase è sincronizzato (thread-safe).Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(Ereditato da CollectionBase)
ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.Gets an object that can be used to synchronize access to the ICollection.

ICollection.SyncRoot

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a CollectionBase.Gets an object that can be used to synchronize access to the CollectionBase.

(Ereditato da CollectionBase)
IList.Add(Object)

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

IList.Add(Object)

Aggiunge un oggetto alla fine di CollectionBase.Adds an object to the end of the CollectionBase.

(Ereditato da CollectionBase)
IList.Contains(Object)

Stabilisce se IList contiene un valore specifico.Determines whether the IList contains a specific value.

IList.Contains(Object)

Consente di stabilire se CollectionBase contiene un elemento specifico.Determines whether the CollectionBase contains a specific element.

(Ereditato da CollectionBase)
IList.IndexOf(Object)

Determina l'indice di un elemento specifico in IList.Determines the index of a specific item in the IList.

IList.IndexOf(Object)

Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero CollectionBase.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(Ereditato da CollectionBase)
IList.Insert(Int32, Object)

Inserisce un elemento in IList in corrispondenza dell'indice specificato.Inserts an item to the IList at the specified index.

IList.Insert(Int32, Object)

Inserisce un elemento in CollectionBase in corrispondenza dell'indice specificato.Inserts an element into the CollectionBase at the specified index.

(Ereditato da CollectionBase)
IList.IsFixedSize

Ottiene un valore che indica se l'oggetto IList ha dimensioni fisse.Gets a value indicating whether the IList has a fixed size.

IList.IsFixedSize

Ottiene un valore che indica se CollectionBase ha dimensioni fisse.Gets a value indicating whether the CollectionBase has a fixed size.

(Ereditato da CollectionBase)
IList.IsReadOnly

Ottiene un valore che indica se IList è di sola lettura.Gets a value indicating whether the IList is read-only.

IList.IsReadOnly

Ottiene un valore che indica se CollectionBase è di sola lettura.Gets a value indicating whether the CollectionBase is read-only.

(Ereditato da CollectionBase)
IList.Item[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.Gets or sets the element at the specified index.

IList.Item[Int32]

Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.Gets or sets the element at the specified index.

(Ereditato da CollectionBase)
IList.Remove(Object)

Rimuove la prima occorrenza di un oggetto specifico da IList.Removes the first occurrence of a specific object from the IList.

IList.Remove(Object)

Rimuove la prima occorrenza di un oggetto specifico da CollectionBase.Removes the first occurrence of a specific object from the CollectionBase.

(Ereditato da CollectionBase)

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a