SqlBulkCopyColumnMappingCollection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
SqlBulkCopyColumnMapping Kolekce objektů, které dědí z 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
- Dědičnost
-
SqlBulkCopyColumnMappingCollection
- Dědičnost
- Implementuje
Příklady
Následující příklad hromadně kopíruje data ze zdrojové tabulky v ukázkové databázi AdventureWorks do cílové tabulky ve stejné databázi. I když počet sloupců v cíli odpovídá počtu sloupců ve zdroji, názvy sloupců a pořadové pozice se neshodují. SqlBulkCopyColumnMapping se přidají do objektu SqlBulkCopyColumnMappingCollectionSqlBulkCopy pro vytvoření mapy sloupců pro hromadnou kopii.
Important
Tento příklad se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v Příklad nastavení hromadného kopírování. Tento kód je k dispozici k předvedení syntaxe pouze pro použití sqlBulkCopy . Pokud jsou zdrojové a cílové tabulky ve stejné instanci SQL Serveru, je jednodušší a rychlejší použít příkaz Transact-SQL INSERT ... SELECT ke zkopírování dat.
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
Poznámky
Mapování sloupců definuje mapování mezi zdrojem dat a cílovou tabulkou.
Pokud mapování není definováno – to znamená, ColumnMappings že kolekce je prázdná – sloupce se mapují implicitně na základě řadové pozice. Aby to fungovalo, musí se zdrojová a cílová schémata shodovat. Pokud ne, je InvalidOperationException vyvolán.
ColumnMappings Pokud kolekce není prázdná, není nutné zadat každý sloupec ve zdroji dat. Ty, které kolekce nenamapuje, se ignorují.
Zdrojové a cílové sloupce můžete odkazovat podle názvu nebo pořadí. Ve stejné kolekci mapování můžete kombinovat odkazy podle názvu a řadových sloupců.
Vlastnosti
| Name | Description |
|---|---|
| Capacity |
Získá nebo nastaví počet prvků, které CollectionBase může obsahovat. (Zděděno od CollectionBase) |
| Count |
Získá počet prvků obsažených v SqlBulkCopyColumnMappingCollection. |
| Count |
Získá počet prvků obsažených CollectionBase v instanci. Tuto vlastnost nelze přepsat. (Zděděno od CollectionBase) |
| InnerList |
ArrayList Získá obsahující seznam prvků v CollectionBase instanci. (Zděděno od CollectionBase) |
| Item[Int32] |
SqlBulkCopyColumnMapping Získá objekt v zadaném indexu. |
| List |
IList Získá obsahující seznam prvků v CollectionBase instanci. (Zděděno od CollectionBase) |
Metody
| Name | Description |
|---|---|
| Add(Int32, Int32) |
Vytvoří novou SqlBulkCopyColumnMapping a přidá ji do kolekce pomocí ordinalů k určení zdrojových i cílových sloupců. |
| Add(Int32, String) |
Vytvoří novou SqlBulkCopyColumnMapping a přidá ji do kolekce pomocí pořadového čísla pro zdrojový sloupec a řetězce pro cílový sloupec. |
| Add(SqlBulkCopyColumnMapping) |
Přidá zadané mapování do souboru SqlBulkCopyColumnMappingCollection. |
| Add(String, Int32) |
Vytvoří nový SqlBulkCopyColumnMapping a přidá ho do kolekce s použitím názvu sloupce, který popisuje zdrojový sloupec a pořadový řádek pro zadání cílového sloupce. |
| Add(String, String) |
Vytvoří novou SqlBulkCopyColumnMapping a přidá ji do kolekce a pomocí názvů sloupců určí zdrojové i cílové sloupce. |
| Clear() |
Vymaže obsah kolekce. |
| Contains(SqlBulkCopyColumnMapping) |
Získá hodnotu určující, zda zadaný SqlBulkCopyColumnMapping objekt existuje v kolekci. |
| CopyTo(SqlBulkCopyColumnMapping[], Int32) |
Zkopíruje prvky SqlBulkCopyColumnMappingCollection pole SqlBulkCopyColumnMapping položek počínaje konkrétním indexem. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetEnumerator() |
Vrátí enumerátor, který iteruje kolekcí. |
| GetEnumerator() |
Vrátí enumerátor, který iteruje prostřednictvím CollectionBase instance. (Zděděno od CollectionBase) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IndexOf(SqlBulkCopyColumnMapping) |
Získá index zadaného SqlBulkCopyColumnMapping objektu. |
| Insert(Int32, SqlBulkCopyColumnMapping) |
Vložte nový SqlBulkCopyColumnMapping do zadaného indexu. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnClear() |
Provádí další vlastní procesy při vymazání obsahu CollectionBase instance. (Zděděno od CollectionBase) |
| OnClearComplete() |
Provádí další vlastní procesy po vymazání obsahu CollectionBase instance. (Zděděno od CollectionBase) |
| OnInsert(Int32, Object) |
Provádí další vlastní procesy před vložením nového prvku do CollectionBase instance. (Zděděno od CollectionBase) |
| OnInsertComplete(Int32, Object) |
Provede další vlastní procesy po vložení nového prvku do CollectionBase instance. (Zděděno od CollectionBase) |
| OnRemove(Int32, Object) |
Provádí další vlastní procesy při odebírání elementu CollectionBase z instance. (Zděděno od CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Provádí další vlastní procesy po odebrání elementu CollectionBase z instance. (Zděděno od CollectionBase) |
| OnSet(Int32, Object, Object) |
Před nastavením hodnoty v CollectionBase instanci provede další vlastní procesy. (Zděděno od CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Provede další vlastní procesy po nastavení hodnoty v CollectionBase instanci. (Zděděno od CollectionBase) |
| OnValidate(Object) |
Provádí další vlastní procesy při ověřování hodnoty. (Zděděno od CollectionBase) |
| Remove(SqlBulkCopyColumnMapping) |
Odebere zadaný SqlBulkCopyColumnMapping prvek z objektu SqlBulkCopyColumnMappingCollection. |
| RemoveAt(Int32) |
Odebere mapování na zadaném indexu z kolekce. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Zkopíruje prvky do objektu ICollectionArray, počínaje konkrétním Array indexem. |
| ICollection.CopyTo(Array, Int32) |
Zkopíruje celý CollectionBase soubor do kompatibilního jednorozměrného Array, počínaje zadaným indexem cílového pole. (Zděděno od CollectionBase) |
| ICollection.IsSynchronized |
Získá hodnotu označující, zda je přístup k ICollection této synchronizaci (bezpečné vlákno). |
| ICollection.IsSynchronized |
Získá hodnotu označující, zda je přístup k CollectionBase této synchronizaci (bezpečné vlákno). (Zděděno od CollectionBase) |
| ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k ICollection. |
| ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k CollectionBase. (Zděděno od CollectionBase) |
| IList.Add(Object) |
Přidá položku do objektu IList. |
| IList.Add(Object) |
Přidá objekt na konec objektu CollectionBase. (Zděděno od CollectionBase) |
| IList.Contains(Object) |
Určuje, zda IList obsahuje konkrétní hodnotu. |
| IList.Contains(Object) |
Určuje, zda obsahuje CollectionBase určitý prvek. (Zděděno od CollectionBase) |
| IList.IndexOf(Object) |
Určuje index konkrétní položky v objektu IList. |
| IList.IndexOf(Object) |
Vyhledá zadaný Object index a vrátí index založený na nule prvního výskytu v celém CollectionBaserozsahu . (Zděděno od CollectionBase) |
| IList.Insert(Int32, Object) |
Vloží položku do IList v zadaném indexu. |
| IList.Insert(Int32, Object) |
Vloží prvek do zadaného indexu CollectionBase . (Zděděno od CollectionBase) |
| IList.IsFixedSize |
Získá hodnotu určující, zda IList má pevnou velikost. |
| IList.IsFixedSize |
Získá hodnotu určující, zda CollectionBase má pevnou velikost. (Zděděno od CollectionBase) |
| IList.IsReadOnly |
Získá hodnotu určující, zda je jen pro IList čtení. |
| IList.IsReadOnly |
Získá hodnotu určující, zda je jen pro CollectionBase čtení. (Zděděno od CollectionBase) |
| IList.Item[Int32] |
Získá nebo nastaví prvek v zadaném indexu. |
| IList.Item[Int32] |
Získá nebo nastaví prvek v zadaném indexu. (Zděděno od CollectionBase) |
| IList.Remove(Object) |
Odebere první výskyt konkrétního objektu z objektu IList. |
| IList.Remove(Object) |
Odebere první výskyt konkrétního objektu z objektu CollectionBase. (Zděděno od CollectionBase) |
Metody rozšíření
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
| AsQueryable(IEnumerable) |
Převede IEnumerable na IQueryable. |
| Cast<TResult>(IEnumerable) |
Přetypuje prvky IEnumerable na zadaný typ. |
| OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable na základě zadaného typu. |