SqlBulkCopyColumnMappingCollection.Add Metoda
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í.
Přetížení
Add(SqlBulkCopyColumnMapping) |
Přidá zadané mapování do .SqlBulkCopyColumnMappingCollection |
Add(Int32, Int32) |
Vytvoří nový SqlBulkCopyColumnMapping objekt a přidá ho do kolekce pomocí ordinálů pro určení zdrojového i cílového sloupce. |
Add(Int32, String) |
Vytvoří nový SqlBulkCopyColumnMapping objekt a přidá ho do kolekce pomocí ordinálu pro zdrojový sloupec a řetězce pro cílový sloupec. |
Add(String, Int32) |
Vytvoří nový SqlBulkCopyColumnMapping a přidá ho do kolekce s použitím názvu sloupce k popisu zdrojového sloupce a ordinálu pro určení cílového sloupce. |
Add(String, String) |
Vytvoří nový SqlBulkCopyColumnMapping a přidá ho do kolekce pomocí názvů sloupců k určení zdrojového i cílového sloupce. |
Add(SqlBulkCopyColumnMapping)
Přidá zadané mapování do .SqlBulkCopyColumnMappingCollection
public:
Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ Add(Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ bulkCopyColumnMapping);
public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add (Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping bulkCopyColumnMapping);
member this.Add : Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping -> Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping
Public Function Add (bulkCopyColumnMapping As SqlBulkCopyColumnMapping) As SqlBulkCopyColumnMapping
Parametry
- bulkCopyColumnMapping
- SqlBulkCopyColumnMapping
Objekt SqlBulkCopyColumnMapping , který popisuje mapování, které má být přidáno do kolekce.
Návraty
Objekt SqlBulkCopyColumnMapping .
Příklady
Následující příklad hromadně zkopí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řadí řad se neshodují. SqlBulkCopyColumnMapping objekty se používají k vytvoření mapy sloupců pro hromadné kopírování.
Důležité
Tato ukázka se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v příkladu 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á tabulka ve stejné SQL Server instanci, je jednodušší a rychlejší zkopírovat data pomocí příkazu Jazyka Transact-SQLINSERT … SELECT
.
// <Snippet1>
using System;
using System.Data;
using Microsoft.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";
// Set up the column mappings by name.
SqlBulkCopyColumnMapping mapID =
new SqlBulkCopyColumnMapping("ProductID", "ProdID");
bulkCopy.ColumnMappings.Add(mapID);
SqlBulkCopyColumnMapping mapName =
new SqlBulkCopyColumnMapping("Name", "ProdName");
bulkCopy.ColumnMappings.Add(mapName);
SqlBulkCopyColumnMapping mapMumber =
new SqlBulkCopyColumnMapping("ProductNumber", "ProdNum");
bulkCopy.ColumnMappings.Add(mapMumber);
// 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;";
}
}
// </Snippet1>
Platí pro
Add(Int32, Int32)
Vytvoří nový SqlBulkCopyColumnMapping objekt a přidá ho do kolekce pomocí ordinálů pro určení zdrojového i cílového sloupce.
public:
Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ Add(int sourceColumnIndex, int destinationColumnIndex);
public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add (int sourceColumnIndex, int destinationColumnIndex);
member this.Add : int * int -> Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping
Public Function Add (sourceColumnIndex As Integer, destinationColumnIndex As Integer) As SqlBulkCopyColumnMapping
Parametry
- sourceColumnIndex
- Int32
Řadová pozice zdrojového sloupce v rámci zdroje dat
- destinationColumnIndex
- Int32
Řadová pozice cílového sloupce v cílové tabulce.
Návraty
Mapování sloupců
Příklady
Následující příklad hromadně zkopí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řadí řad se neshodují. SqlBulkCopyColumnMapping objekty se používají k vytvoření mapování sloupců pro hromadné kopírování pomocí řadové pozice zdrojového a cílového sloupce.
Důležité
Tato ukázka se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v příkladu 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á tabulka ve stejné SQL Server instanci, je jednodušší a rychlejší zkopírovat data pomocí příkazu Jazyka Transact-SQLINSERT … SELECT
.
using System;
using System.Data;
using Microsoft.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(0, 0);
bulkCopy.ColumnMappings.Add(1, 2);
bulkCopy.ColumnMappings.Add(2, 1);
// 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;";
}
}
Poznámky
Mapování v kolekci musí být jednotné: buď všechny páry celých čísel a celých čísel, všechny páry řetězců a řetězců, všechny páry celé číslo/řetězec nebo všechny páry řetězce/celé číslo. Pokud se pokusíte přidat mapování, které se liší od ostatních, které už v kolekci jsou, InvalidOperationException vyvolá se.
Platí pro
Add(Int32, String)
Vytvoří nový SqlBulkCopyColumnMapping objekt a přidá ho do kolekce pomocí ordinálu pro zdrojový sloupec a řetězce pro cílový sloupec.
public:
Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ Add(int sourceColumnIndex, System::String ^ destinationColumn);
public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add (int sourceColumnIndex, string destinationColumn);
member this.Add : int * string -> Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping
Public Function Add (sourceColumnIndex As Integer, destinationColumn As String) As SqlBulkCopyColumnMapping
Parametry
- sourceColumnIndex
- Int32
Řadová pozice zdrojového sloupce v rámci zdroje dat
- destinationColumn
- String
Název cílového sloupce v cílové tabulce.
Návraty
Mapování sloupců
Příklady
Následující příklad hromadně zkopí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řadí řad se neshodují. SqlBulkCopyColumnMapping objekty se používají k vytvoření mapy sloupců pro hromadné kopírování.
Důležité
Tato ukázka se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v příkladu 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á tabulka ve stejné SQL Server instanci, je jednodušší a rychlejší zkopírovat data pomocí příkazu Jazyka Transact-SQLINSERT … SELECT
.
using System;
using System.Data;
using Microsoft.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(0, 0);
bulkCopy.ColumnMappings.Add(1, 2);
bulkCopy.ColumnMappings.Add(2, 1);
// 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;";
}
}
Poznámky
Mapování v kolekci musí být jednotné: buď všechny páry celých čísel a celých čísel, všechny páry řetězců a řetězců, všechny páry celé číslo/řetězec nebo všechny páry řetězce/celé číslo. Pokud se pokusíte přidat mapování, které se liší od ostatních, které už v kolekci jsou, InvalidOperationException vyvolá se.
Platí pro
Add(String, Int32)
Vytvoří nový SqlBulkCopyColumnMapping a přidá ho do kolekce s použitím názvu sloupce k popisu zdrojového sloupce a ordinálu pro určení cílového sloupce.
public:
Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ Add(System::String ^ sourceColumn, int destinationColumnIndex);
public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add (string sourceColumn, int destinationColumnIndex);
member this.Add : string * int -> Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping
Public Function Add (sourceColumn As String, destinationColumnIndex As Integer) As SqlBulkCopyColumnMapping
Parametry
- sourceColumn
- String
Název zdrojového sloupce v rámci zdroje dat.
- destinationColumnIndex
- Int32
Řadová pozice cílového sloupce v cílové tabulce.
Návraty
Mapování sloupců
Příklady
Následující příklad hromadně zkopí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řadí řad se neshodují. SqlBulkCopyColumnMapping objekty se používají k vytvoření mapy sloupců pro hromadné kopírování.
Důležité
Tato ukázka se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v příkladu 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á tabulka ve stejné SQL Server instanci, je jednodušší a rychlejší zkopírovat data pomocí příkazu Jazyka Transact-SQLINSERT … SELECT
.
using Microsoft.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(0, 0);
bulkCopy.ColumnMappings.Add(1, 2);
bulkCopy.ColumnMappings.Add(2, 1);
// 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;";
}
}
Poznámky
Mapování v kolekci musí být jednotné: buď všechny páry celých čísel a celých čísel, všechny páry řetězců a řetězců, všechny páry celé číslo/řetězec nebo všechny páry řetězce/celé číslo. Pokud se pokusíte přidat mapování, které se liší od ostatních, které už v kolekci jsou, InvalidOperationException vyvolá se.
Platí pro
Add(String, String)
Vytvoří nový SqlBulkCopyColumnMapping a přidá ho do kolekce pomocí názvů sloupců k určení zdrojového i cílového sloupce.
public:
Microsoft::Data::SqlClient::SqlBulkCopyColumnMapping ^ Add(System::String ^ sourceColumn, System::String ^ destinationColumn);
public Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping Add (string sourceColumn, string destinationColumn);
member this.Add : string * string -> Microsoft.Data.SqlClient.SqlBulkCopyColumnMapping
Public Function Add (sourceColumn As String, destinationColumn As String) As SqlBulkCopyColumnMapping
Parametry
- sourceColumn
- String
Název zdrojového sloupce v rámci zdroje dat.
- destinationColumn
- String
Název cílového sloupce v cílové tabulce.
Návraty
Mapování sloupců
Příklady
Následující příklad hromadně zkopí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řadí řad se neshodují. Kód vytvoří SqlBulkCopyColumnMapping objekt zadáním názvů sloupců.
Důležité
Tato ukázka se nespustí, pokud jste nevytvořili pracovní tabulky, jak je popsáno v příkladu 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á tabulka ve stejné SQL Server instanci, je jednodušší a rychlejší zkopírovat data pomocí příkazu Jazyka Transact-SQLINSERT … SELECT
.
using System;
using System.Data;
using Microsoft.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;";
}
}
Poznámky
Mapování v kolekci musí být jednotné: buď všechny páry celých čísel a celých čísel, všechny páry řetězců a řetězců, všechny páry celé číslo/řetězec nebo všechny páry řetězce/celé číslo. Pokud se pokusíte přidat mapování, které se liší od ostatních, které už v kolekci jsou, InvalidOperationException vyvolá se.