SqlBulkCopyColumnMappingCollection Osztály

Definíció

A SqlBulkCopyColumnMapping forrásból CollectionBaseöröklő objektumok gyűjteménye.

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
Öröklődés
SqlBulkCopyColumnMappingCollection
Öröklődés
SqlBulkCopyColumnMappingCollection
Megvalósítás

Példák

Az alábbi példa tömegesen másolja az adatokat az AdventureWorks mintaadatbázis egyik forrástáblájából egy céltáblába ugyanabban az adatbázisban. Bár a célhely oszlopainak száma megegyezik a forrás oszlopainak számával, az oszlopnevek és a sorszámok nem egyeznek. SqlBulkCopyColumnMapping a rendszer hozzáadja az SqlBulkCopyColumnMappingCollection objektumhoz, SqlBulkCopy hogy létrehozhasson egy oszloptérképet a tömeges másoláshoz.

Important

Ez a példa nem fog futni, hacsak nem hozta létre a munkatáblákat a Tömeges másolási példa beállításaszerint. Ez a kód csak az SqlBulkCopy használatának szintaxisát mutatja be. Ha a forrás- és céltáblák ugyanabban a SQL Server példányban találhatók, egyszerűbb és gyorsabb egy Transact-SQL INSERT ... SELECT utasítás használata az adatok másolásához.

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

Megjegyzések

Az oszlopleképezések határozzák meg az adatforrás és a céltábla közötti leképezést.

Ha a leképezések nincsenek definiálva – vagyis a ColumnMappings gyűjtemény üres –, az oszlopok implicit módon vannak leképezve a sorrendi pozíció alapján. Ahhoz, hogy ez működjön, a forrás- és célsémáknak egyeznie kell. Ha nem, egy InvalidOperationException dobni.

Ha a ColumnMappings gyűjtemény nem üres, nem kell megadni az adatforrásban található összes oszlopot. A gyűjtemény által nem leképezetteket a rendszer figyelmen kívül hagyja.

A forrás- és céloszlopokra név vagy sorszám alapján hivatkozhat. Azonos leképezési gyűjteményben a név és a sorszám szerinti oszlophivatkozások kombinálhatók.

Tulajdonságok

Name Description
Capacity

Lekéri vagy beállítja a tartalmazható elemek CollectionBase számát.

(Öröklődés forrása CollectionBase)
Count

Lekéri a .SqlBulkCopyColumnMappingCollection

Count

Lekéri a példányban CollectionBase található elemek számát. Ez a tulajdonság nem bírálható felül.

(Öröklődés forrása CollectionBase)
InnerList

ArrayList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)
Item[Int32]

Lekéri az SqlBulkCopyColumnMapping objektumot a megadott indexen.

List

IList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)

Metódusok

Name Description
Add(Int32, Int32)

Létrehoz egy újat SqlBulkCopyColumnMapping , és hozzáadja a gyűjteményhez a forrás- és a céloszlopok megadására vonatkozó sorszámokkal.

Add(Int32, String)

Létrehoz egy újat SqlBulkCopyColumnMapping , és hozzáadja a gyűjteményhez a forrásoszlop sorszáma és a céloszlop sztringje használatával.

Add(SqlBulkCopyColumnMapping)

Hozzáadja a megadott leképezést a SqlBulkCopyColumnMappingCollection.

Add(String, Int32)

Létrehoz egy újat SqlBulkCopyColumnMapping , és hozzáadja a gyűjteményhez egy oszlopnévvel a forrásoszlop leírásához, valamint egy sorszámot a céloszlop megadásához.

Add(String, String)

Létrehoz egy újat SqlBulkCopyColumnMapping , és hozzáadja a gyűjteményhez az oszlopnevek használatával a forrás- és a céloszlopok megadásához.

Clear()

Törli a gyűjtemény tartalmát.

Contains(SqlBulkCopyColumnMapping)

Beolvas egy értéket, amely jelzi, hogy létezik-e egy adott SqlBulkCopyColumnMapping objektum a gyűjteményben.

CopyTo(SqlBulkCopyColumnMapping[], Int32)

Az elemeket SqlBulkCopyColumnMappingCollection egy elemtömbbe SqlBulkCopyColumnMapping másolja egy adott indextől kezdve.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetEnumerator()

Egy gyűjteményen keresztül iteráló enumerátort ad vissza.

GetEnumerator()

Egy enumerátort ad vissza, amely a példányon keresztül CollectionBase iterál.

(Öröklődés forrása CollectionBase)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IndexOf(SqlBulkCopyColumnMapping)

Lekéri a megadott SqlBulkCopyColumnMapping objektum indexét.

Insert(Int32, SqlBulkCopyColumnMapping)

Szúrjon be egy újat SqlBulkCopyColumnMapping a megadott indexbe.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnClear()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlésekor.

(Öröklődés forrása CollectionBase)
OnClearComplete()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlése után.

(Öröklődés forrása CollectionBase)
OnInsert(Int32, Object)

További egyéni folyamatokat hajt végre, mielőtt új elemet szúr be a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnInsertComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután beszúrt egy új elemet a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnRemove(Int32, Object)

További egyéni folyamatokat hajt végre, amikor eltávolít egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnRemoveComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután eltávolított egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnSet(Int32, Object, Object)

További egyéni folyamatokat hajt végre, mielőtt beállít egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnSetComplete(Int32, Object, Object)

További egyéni folyamatokat hajt végre, miután beállított egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnValidate(Object)

További egyéni folyamatokat hajt végre egy érték ellenőrzésekor.

(Öröklődés forrása CollectionBase)
Remove(SqlBulkCopyColumnMapping)

Eltávolítja a megadott SqlBulkCopyColumnMapping elemet a SqlBulkCopyColumnMappingCollection.

RemoveAt(Int32)

Eltávolítja a megadott index leképezését a gyűjteményből.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
ICollection.CopyTo(Array, Int32)

Az elemeket ICollection egy adott indextől kezdve másolja Arrayegy adott Array indexbe.

ICollection.CopyTo(Array, Int32)

A teljes CollectionBase példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb megadott indexétől kezdve.

(Öröklődés forrása CollectionBase)
ICollection.IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a ICollection hozzáférés szinkronizálva van-e (a szál biztonságos).

ICollection.IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a CollectionBase hozzáférés szinkronizálva van-e (a szál biztonságos).

(Öröklődés forrása CollectionBase)
ICollection.SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.ICollection

ICollection.SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.CollectionBase

(Öröklődés forrása CollectionBase)
IList.Add(Object)

Elemet ad hozzá a IList.

IList.Add(Object)

Objektumot ad hozzá a CollectionBasevégéhez.

(Öröklődés forrása CollectionBase)
IList.Contains(Object)

Meghatározza, hogy az IList adott érték tartalmaz-e.

IList.Contains(Object)

Meghatározza, hogy az CollectionBase adott elem tartalmaz-e.

(Öröklődés forrása CollectionBase)
IList.IndexOf(Object)

Egy adott elem indexét határozza meg a IList.

IList.IndexOf(Object)

Megkeresi a megadott Object értéket, és a teljes első CollectionBaseelőfordulás nulla alapú indexét adja vissza.

(Öröklődés forrása CollectionBase)
IList.Insert(Int32, Object)

Beszúr egy elemet a IList megadott indexbe.

IList.Insert(Int32, Object)

Elemet szúr be a CollectionBase megadott indexbe.

(Öröklődés forrása CollectionBase)
IList.IsFixedSize

Egy értéket kap, amely jelzi, hogy a IList méret rögzített-e.

IList.IsFixedSize

Egy értéket kap, amely jelzi, hogy a CollectionBase méret rögzített-e.

(Öröklődés forrása CollectionBase)
IList.IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az IList írásvédett-e.

IList.IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az CollectionBase írásvédett-e.

(Öröklődés forrása CollectionBase)
IList.Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

IList.Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

(Öröklődés forrása CollectionBase)
IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását a IList.

IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását a CollectionBase.

(Öröklődés forrása CollectionBase)

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes:

Lásd még