SqlBulkCopyColumnMappingCollection Klasse

Definition

Auflistung von SqlBulkCopyColumnMapping Objekten, die von CollectionBase.

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

Beispiele

Im folgenden Beispiel werden Daten aus einer Quelltabelle in der Beispieldatenbank AdventureWorks in eine Zieltabelle derselben Datenbank massenkopiert. Obwohl die Anzahl der Spalten im Ziel mit der Anzahl der Spalten in der Quelle übereinstimmt, stimmen die Spaltennamen und Ordnungspositionen nicht überein. SqlBulkCopyColumnMapping wird dem SqlBulkCopyColumnMappingCollectionSqlBulkCopy Objekt hinzugefügt, um eine Spaltenzuordnung für die Massenkopie zu erstellen.

Important

Dieses Beispiel wird nur ausgeführt, wenn Sie die Arbeitstabellen zuvor wie unter Beispiel für die Einrichtung des Massenkopierens beschrieben erstellt haben. Der angegebene Code dient nur zur Demonstration der Syntax für die Verwendung von SqlBulkCopy. Wenn sich die Quell- und Zieltabellen in derselben SQL Server-Instanz befinden, ist es einfacher und schneller, eine Transact-SQL-Anweisung INSERT ... SELECT zum Kopieren der Daten zu verwenden.

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

Hinweise

Spaltenzuordnungen definieren die Zuordnung zwischen Datenquelle und Zieltabelle.

Wenn Zuordnungen nicht definiert sind , d. h. die ColumnMappings Sammlung leer ist, werden die Spalten implizit basierend auf der Ordnungsposition zugeordnet. Damit dies funktioniert, müssen Quell- und Zielschema übereinstimmen. Wenn sie nicht, wird ein InvalidOperationException Geworfen.

Wenn die ColumnMappings Auflistung nicht leer ist, muss nicht jede Spalte in der Datenquelle angegeben werden. Diejenigen, die von der Auflistung nicht zugeordnet werden, werden ignoriert.

Sie können auf Quell- und Zielspalten über den Namen oder die Ordnungszahl verweisen. Sie können Nachnamen- und By-Ordinal-Spaltenverweise in derselben Zuordnungssammlung kombinieren.

Eigenschaften

Name Beschreibung
Capacity

Ruft die Anzahl der Elemente ab, die dies enthalten kann, oder legt diese CollectionBase fest.

(Geerbt von CollectionBase)
Count

Ruft die Anzahl der Elemente ab, die in der SqlBulkCopyColumnMappingCollection.

Count

Ruft die Anzahl der In der CollectionBase Instanz enthaltenen Elemente ab. Diese Eigenschaft kann nicht außer Kraft gesetzt werden.

(Geerbt von CollectionBase)
InnerList

Ruft eine ArrayList liste der Elemente in der CollectionBase Instanz ab.

(Geerbt von CollectionBase)
Item[Int32]

Ruft das SqlBulkCopyColumnMapping -Objekt am angegebenen Index ab.

List

Ruft eine IList liste der Elemente in der CollectionBase Instanz ab.

(Geerbt von CollectionBase)

Methoden

Name Beschreibung
Add(Int32, Int32)

Erstellt eine neue SqlBulkCopyColumnMapping Und fügt sie der Auflistung hinzu, wobei Ordnungszahlen verwendet werden, um Quell- und Zielspalten anzugeben.

Add(Int32, String)

Erstellt eine neue SqlBulkCopyColumnMapping Und fügt sie der Auflistung mithilfe einer Ordnungszahl für die Quellspalte und einer Zeichenfolge für die Zielspalte hinzu.

Add(SqlBulkCopyColumnMapping)

Fügt die angegebene Zuordnung zu der SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

Erstellt eine neue SqlBulkCopyColumnMapping Und fügt sie der Auflistung hinzu, wobei ein Spaltenname verwendet wird, um die Quellspalte und ein Ordinal zum Angeben der Zielspalte zu beschreiben.

Add(String, String)

Erstellt eine neue SqlBulkCopyColumnMapping Und fügt sie der Auflistung hinzu, wobei Spaltennamen zum Angeben von Quell- und Zielspalten verwendet werden.

Clear()

Löscht den Inhalt der Auflistung.

Contains(SqlBulkCopyColumnMapping)

Ruft einen Wert ab, der angibt, ob ein angegebenes SqlBulkCopyColumnMapping Objekt in der Auflistung vorhanden ist.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

Kopiert die Elemente des SqlBulkCopyColumnMappingCollection Elements in ein Array von SqlBulkCopyColumnMapping Elementen, beginnend bei einem bestimmten Index.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der eine Auflistung durchläuft.

GetEnumerator()

Gibt einen Enumerator zurück, der die CollectionBase Instanz durchläuft.

(Geerbt von CollectionBase)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(SqlBulkCopyColumnMapping)

Ruft den Index des angegebenen SqlBulkCopyColumnMapping -Objekts ab.

Insert(Int32, SqlBulkCopyColumnMapping)

Fügen Sie am angegebenen Index eine neue SqlBulkCopyColumnMapping Einfügemarke ein.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnClear()

Führt zusätzliche benutzerdefinierte Prozesse aus, wenn der Inhalt der CollectionBase Instanz gelöscht wird.

(Geerbt von CollectionBase)
OnClearComplete()

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem der Inhalt der CollectionBase Instanz gelöscht wurde.

(Geerbt von CollectionBase)
OnInsert(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein neues Element in die CollectionBase Instanz eingefügt wird.

(Geerbt von CollectionBase)
OnInsertComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem ein neues Element in die CollectionBase Instanz eingefügt wurde.

(Geerbt von CollectionBase)
OnRemove(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, wenn ein Element aus der CollectionBase Instanz entfernt wird.

(Geerbt von CollectionBase)
OnRemoveComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem ein Element aus der CollectionBase Instanz entfernt wurde.

(Geerbt von CollectionBase)
OnSet(Int32, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein Wert in der CollectionBase Instanz festgelegt wird.

(Geerbt von CollectionBase)
OnSetComplete(Int32, Object, Object)

Führt nach dem Festlegen eines Werts in der CollectionBase Instanz weitere benutzerdefinierte Prozesse aus.

(Geerbt von CollectionBase)
OnValidate(Object)

Führt beim Überprüfen eines Werts zusätzliche benutzerdefinierte Prozesse aus.

(Geerbt von CollectionBase)
Remove(SqlBulkCopyColumnMapping)

Entfernt das angegebene SqlBulkCopyColumnMapping Element aus der SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

Entfernt die Zuordnung am angegebenen Index aus der Auflistung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICollection.CopyTo(Array, Int32)

Kopiert die Elemente des Elements in ICollection ein Array, beginnend bei einem bestimmten Array Index.

ICollection.CopyTo(Array, Int32)

Kopiert das Gesamte CollectionBase in einen kompatiblen eindimensionalen Array, beginnend am angegebenen Index des Zielarrays.

(Geerbt von CollectionBase)
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection Synchronisierung (Threadsicher) erfolgt.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die CollectionBase Synchronisierung (Threadsicher) erfolgt.

(Geerbt von CollectionBase)
ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die ICollectionverwendet werden kann.

ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die CollectionBaseverwendet werden kann.

(Geerbt von CollectionBase)
IList.Add(Object)

Fügt ein Element zum IList.

IList.Add(Object)

Fügt ein Objekt am Ende der .CollectionBase

(Geerbt von CollectionBase)
IList.Contains(Object)

Bestimmt, ob der IList Wert einen bestimmten Wert enthält.

IList.Contains(Object)

Bestimmt, ob das CollectionBase Element ein bestimmtes Element enthält.

(Geerbt von CollectionBase)
IList.IndexOf(Object)

Bestimmt den Index eines bestimmten Elements in der IList.

IList.IndexOf(Object)

Sucht nach dem angegebenen Object Und gibt den nullbasierten Index des ersten Vorkommens innerhalb des gesamten CollectionBasezurück.

(Geerbt von CollectionBase)
IList.Insert(Int32, Object)

Fügt ein Element an den IList angegebenen Index ein.

IList.Insert(Int32, Object)

Fügt ein Element in den CollectionBase angegebenen Index ein.

(Geerbt von CollectionBase)
IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die IList Größe fest ist.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die CollectionBase Größe fest ist.

(Geerbt von CollectionBase)
IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob dies IList schreibgeschützt ist.

IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob dies CollectionBase schreibgeschützt ist.

(Geerbt von CollectionBase)
IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt es fest.

IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt es fest.

(Geerbt von CollectionBase)
IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem IList.

IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem CollectionBase.

(Geerbt von CollectionBase)

Erweiterungsmethoden

Name Beschreibung
AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

Gilt für:

Weitere Informationen