SqlBulkCopyColumnMappingCollection Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
SqlBulkCopyColumnMapping Samling objekt som ärver från 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
- Arv
Exempel
I följande exempel kopieras data från en källtabell i AdventureWorks-exempeldatabasen till en måltabell i samma databas. Även om antalet kolumner i målet matchar antalet kolumner i källan matchar inte kolumnnamnen och ordningspositionerna. SqlBulkCopyColumnMapping läggs till SqlBulkCopyColumnMappingCollection för objektet för SqlBulkCopy att skapa en kolumnkarta för masskopian.
Important
Det här exemplet körs inte om du inte har skapat arbetstabellerna enligt beskrivningen i Inställning för masskopieringsexempel. Den här koden tillhandahålls för att demonstrera syntaxen för att endast använda SqlBulkCopy . Om käll- och måltabellerna finns i samma SQL Server instans är det enklare och snabbare att använda en Transact-SQL INSERT ... SELECT-instruktion för att kopiera 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
Kommentarer
Kolumnmappningar definierar mappningen mellan datakällan och måltabellen.
Om mappningar inte har definierats , dvs ColumnMappings . samlingen är tom, mappas kolumnerna implicit baserat på ordningstalet. För att detta ska fungera måste käll- och målscheman matcha. Om de inte gör det, kastas en InvalidOperationException .
Om samlingen ColumnMappings inte är tom måste inte alla kolumner som finns i datakällan anges. De som inte mappas av samlingen ignoreras.
Du kan referera till käll- och målkolumner med antingen namn eller ordningstal. Du kan blanda kolumnreferenser efter namn och ordning i samma mappningssamling.
Egenskaper
| Name | Description |
|---|---|
| Capacity |
Hämtar eller anger antalet element som CollectionBase kan innehålla. (Ärvd från CollectionBase) |
| Count |
Hämtar antalet element som finns i instansen CollectionBase . Den här egenskapen kan inte åsidosättas. (Ärvd från CollectionBase) |
| InnerList |
Hämtar en ArrayList lista med element i instansen CollectionBase . (Ärvd från CollectionBase) |
| Item[Int32] |
Hämtar objektet SqlBulkCopyColumnMapping vid det angivna indexet. |
| List |
Hämtar en IList lista med element i instansen CollectionBase . (Ärvd från CollectionBase) |
Metoder
| Name | Description |
|---|---|
| Add(Int32, Int32) |
Skapar en ny SqlBulkCopyColumnMapping och lägger till den i samlingen med hjälp av ordningstal för att ange både käll- och målkolumner. |
| Add(Int32, String) |
Skapar en ny SqlBulkCopyColumnMapping och lägger till den i samlingen med hjälp av en ordningstal för källkolumnen och en sträng för målkolumnen. |
| Add(SqlBulkCopyColumnMapping) |
Lägger till den angivna mappningen i SqlBulkCopyColumnMappingCollection. |
| Add(String, Int32) |
Skapar en ny SqlBulkCopyColumnMapping och lägger till den i samlingen med ett kolumnnamn för att beskriva källkolumnen och en ordningstal för att ange målkolumnen. |
| Add(String, String) |
Skapar en ny SqlBulkCopyColumnMapping och lägger till den i samlingen med kolumnnamn för att ange både käll- och målkolumner. |
| Clear() |
Rensar innehållet i samlingen. |
| Contains(SqlBulkCopyColumnMapping) |
Hämtar ett värde som anger om ett angivet SqlBulkCopyColumnMapping objekt finns i samlingen. |
| CopyTo(SqlBulkCopyColumnMapping[], Int32) |
Kopierar elementen i SqlBulkCopyColumnMappingCollection till en matris med SqlBulkCopyColumnMapping objekt, med början vid ett visst index. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetEnumerator() |
Returnerar en uppräkning som itererar genom instansen CollectionBase . (Ärvd från CollectionBase) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IndexOf(SqlBulkCopyColumnMapping) |
Hämtar indexet för det angivna SqlBulkCopyColumnMapping objektet. |
| Insert(Int32, SqlBulkCopyColumnMapping) |
Infoga en ny SqlBulkCopyColumnMapping i det angivna indexet. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnClear() |
Utför ytterligare anpassade processer när du rensar innehållet i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnClearComplete() |
Utför ytterligare anpassade processer när innehållet i instansen har rensats CollectionBase . (Ärvd från CollectionBase) |
| OnInsert(Int32, Object) |
Utför ytterligare anpassade processer innan du infogar ett nytt element i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnInsertComplete(Int32, Object) |
Utför ytterligare anpassade processer när du har infogat ett nytt element i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnRemove(Int32, Object) |
Utför ytterligare anpassade processer när du tar bort ett element från instansen CollectionBase . (Ärvd från CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Utför ytterligare anpassade processer när du har tagit bort ett element från instansen CollectionBase . (Ärvd från CollectionBase) |
| OnSet(Int32, Object, Object) |
Utför ytterligare anpassade processer innan du anger ett värde i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Utför ytterligare anpassade processer när du har angett ett värde i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnValidate(Object) |
Utför ytterligare anpassade processer när du verifierar ett värde. (Ärvd från CollectionBase) |
| Remove(SqlBulkCopyColumnMapping) |
Tar bort det angivna SqlBulkCopyColumnMapping elementet SqlBulkCopyColumnMappingCollectionfrån . |
| RemoveAt(Int32) |
Tar bort mappningen vid det angivna indexet från samlingen. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopierar hela CollectionBase till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. (Ärvd från CollectionBase) |
| ICollection.IsSynchronized |
Hämtar ett värde som anger om åtkomsten CollectionBase till är synkroniserad (trådsäker). (Ärvd från CollectionBase) |
| ICollection.SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten CollectionBasetill . (Ärvd från CollectionBase) |
| IList.Add(Object) |
Lägger till ett objekt i slutet av CollectionBase. (Ärvd från CollectionBase) |
| IList.Contains(Object) |
Avgör om innehåller CollectionBase ett specifikt element. (Ärvd från CollectionBase) |
| IList.IndexOf(Object) |
Söker efter den angivna Object och returnerar det nollbaserade indexet för den första förekomsten i hela CollectionBase. (Ärvd från CollectionBase) |
| IList.Insert(Int32, Object) |
Infogar ett element i CollectionBase det angivna indexet. (Ärvd från CollectionBase) |
| IList.IsFixedSize |
Hämtar ett värde som anger om har CollectionBase en fast storlek. (Ärvd från CollectionBase) |
| IList.IsReadOnly |
Hämtar ett värde som anger om är CollectionBase skrivskyddat. (Ärvd från CollectionBase) |
| IList.Item[Int32] |
Hämtar eller anger elementet vid det angivna indexet. (Ärvd från CollectionBase) |
| IList.Remove(Object) |
Tar bort den första förekomsten av ett specifikt objekt från CollectionBase. (Ärvd från CollectionBase) |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |