SqlBulkCopyColumnMappingCollection Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Coleção de SqlBulkCopyColumnMapping objetos que herda de 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
- Herança
Exemplos
O exemplo seguinte copia em massa dados de uma tabela de origem na base de dados de exemplos AdventureWorks para uma tabela de destino na mesma base de dados. Embora o número de colunas no destino coincida com o número de colunas na fonte, os nomes das colunas e as posições ordinais não coincidem. SqlBulkCopyColumnMapping são adicionados ao SqlBulkCopyColumnMappingCollection para o SqlBulkCopy objeto para criar um mapa de colunas para a cópia em massa.
Importante
Este exemplo não será executado a menos que as tabelas de trabalho tenham sido criadas conforme descrito na configuração do exemplo de cópia em massa . Este código é fornecido apenas para demonstrar a sintaxe para usar SqlBulkCopy. Se as tabelas de origem e destino estiverem na mesma instância SQL Server, é mais fácil e rápido usar uma instrução Transact-SQL INSERT ... SELECT para copiar os dados.
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
Observações
Os mapeamentos de colunas definem o mapeamento entre a fonte de dados e a tabela de destino.
Se os mapeamentos não estiverem definidos – ou seja, a ColumnMappings coleção estiver vazia – as colunas são mapeadas implicitamente com base na posição ordinal. Para que isto funcione, os esquemas de origem e destino têm de coincidir. Se não o fizerem, é lançado InvalidOperationException .
Se a ColumnMappings coleção não estiver vazia, nem todas as colunas presentes na fonte de dados têm de ser especificadas. Aqueles que não são mapeados pela coleção são ignorados.
Pode referir-se às colunas de origem e destino pelo nome ou ordinal. Pode misturar referências por nome e por colunas ordinais na mesma coleção de mapeamentos.
Propriedades
| Name | Description |
|---|---|
| Capacity |
Obtém ou define o número de elementos que podem CollectionBase conter. (Herdado de CollectionBase) |
| Count |
Obtém o número de elementos contidos na CollectionBase instância. Esta propriedade não pode ser substituída. (Herdado de CollectionBase) |
| InnerList |
Obtém um ArrayList contendo a lista de elementos na CollectionBase instância. (Herdado de CollectionBase) |
| Item[Int32] |
Obtém o SqlBulkCopyColumnMapping objeto no índice especificado. |
| List |
Obtém um IList contendo a lista de elementos na CollectionBase instância. (Herdado de CollectionBase) |
Métodos
| Name | Description |
|---|---|
| Add(Int32, Int32) |
Cria um novo SqlBulkCopyColumnMapping e adiciona-o à coleção, usando ordinais para especificar tanto as colunas de origem como de destino. |
| Add(Int32, String) |
Cria um novo SqlBulkCopyColumnMapping e adiciona-o à coleção, usando um ordinal para a coluna de origem e uma string para a coluna de destino. |
| Add(SqlBulkCopyColumnMapping) |
Adiciona o mapeamento especificado ao SqlBulkCopyColumnMappingCollection. |
| Add(String, Int32) |
Cria um novo SqlBulkCopyColumnMapping e adiciona-o à coleção, usando um nome de coluna para descrever a coluna de origem e um ordinal para especificar a coluna de destino. |
| Add(String, String) |
Cria um novo SqlBulkCopyColumnMapping e adiciona-o à coleção, usando nomes de colunas para especificar tanto as colunas de origem como de destino. |
| Clear() |
Limpa o conteúdo da coleção. |
| Contains(SqlBulkCopyColumnMapping) |
Recebe um valor que indica se existe um objeto especificado SqlBulkCopyColumnMapping na coleção. |
| CopyTo(SqlBulkCopyColumnMapping[], Int32) |
Copia os elementos de para SqlBulkCopyColumnMappingCollection um array de SqlBulkCopyColumnMapping itens, começando num índice específico. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetEnumerator() |
Devolve um enumerador que itera pela CollectionBase instância. (Herdado de CollectionBase) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IndexOf(SqlBulkCopyColumnMapping) |
Obtém o índice do objeto especificado SqlBulkCopyColumnMapping . |
| Insert(Int32, SqlBulkCopyColumnMapping) |
Insira um novo SqlBulkCopyColumnMapping no índice especificado. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnClear() |
Realiza processos personalizados adicionais ao limpar o conteúdo da CollectionBase instância. (Herdado de CollectionBase) |
| OnClearComplete() |
Realiza processos personalizados adicionais após limpar o conteúdo da CollectionBase instância. (Herdado de CollectionBase) |
| OnInsert(Int32, Object) |
Realiza processos personalizados adicionais antes de inserir um novo elemento na CollectionBase instância. (Herdado de CollectionBase) |
| OnInsertComplete(Int32, Object) |
Executa processos personalizados adicionais após inserir um novo elemento na CollectionBase instância. (Herdado de CollectionBase) |
| OnRemove(Int32, Object) |
Realiza processos personalizados adicionais ao remover um elemento da CollectionBase instância. (Herdado de CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Executa processos personalizados adicionais após remover um elemento da CollectionBase instância. (Herdado de CollectionBase) |
| OnSet(Int32, Object, Object) |
Realiza processos personalizados adicionais antes de definir um valor na CollectionBase instância. (Herdado de CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Executa processos personalizados adicionais após definir um valor na CollectionBase instância. (Herdado de CollectionBase) |
| OnValidate(Object) |
Realiza processos personalizados adicionais ao validar um valor. (Herdado de CollectionBase) |
| Remove(SqlBulkCopyColumnMapping) |
Remove o elemento especificado SqlBulkCopyColumnMapping do SqlBulkCopyColumnMappingCollection. |
| RemoveAt(Int32) |
Remove o mapeamento no índice especificado da coleção. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia a totalidade CollectionBase para uma unidimensional Arraycompatível , começando no índice especificado do array alvo. (Herdado de CollectionBase) |
| ICollection.IsSynchronized |
Recebe um valor que indica se o acesso ao CollectionBase é sincronizado (thread safe). (Herdado de CollectionBase) |
| ICollection.SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso ao CollectionBase. (Herdado de CollectionBase) |
| IList.Add(Object) |
Adiciona um objeto ao final do CollectionBase. (Herdado de CollectionBase) |
| IList.Contains(Object) |
Determina se o CollectionBase contém um elemento específico. (Herdado de CollectionBase) |
| IList.IndexOf(Object) |
Procura o especificado Object e devolve o índice baseado em zero da primeira ocorrência dentro de todo CollectionBaseo . (Herdado de CollectionBase) |
| IList.Insert(Int32, Object) |
Insere um elemento no CollectionBase índice especificado. (Herdado de CollectionBase) |
| IList.IsFixedSize |
Obtém um valor que indica se o CollectionBase tem um tamanho fixo. (Herdado de CollectionBase) |
| IList.IsReadOnly |
Recebe um valor que indica se o CollectionBase é apenas de leitura. (Herdado de CollectionBase) |
| IList.Item[Int32] |
Obtém ou define o elemento no índice especificado. (Herdado de CollectionBase) |
| IList.Remove(Object) |
Remove a primeira ocorrência de um objeto específico do CollectionBase. (Herdado de CollectionBase) |
Métodos da Extensão
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Permite a paralelização de uma consulta. |
| AsQueryable(IEnumerable) |
Converte um IEnumerable para um IQueryable. |
| Cast<TResult>(IEnumerable) |
Conjura os elementos de an IEnumerable para o tipo especificado. |
| OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base num tipo especificado. |