SqlBulkCopy Konstruktory

Definicja

Inicjuje nowe wystąpienie klasy SqlBulkCopy.

Przeciążenia

Nazwa Opis
SqlBulkCopy(SqlConnection)

Inicjuje nowe wystąpienie SqlBulkCopy klasy przy użyciu określonego otwartego wystąpienia klasy SqlConnection.

SqlBulkCopy(String)

Inicjuje i otwiera nowe wystąpienie SqlConnection na podstawie podanego obiektu connectionString. Konstruktor używa SqlConnection do zainicjowania nowego wystąpienia klasy SqlBulkCopy.

SqlBulkCopy(String, SqlBulkCopyOptions)

Inicjuje i otwiera nowe wystąpienie SqlConnection na podstawie podanego obiektu connectionString. Konstruktor używa tego SqlConnection do inicjowania nowego wystąpienia SqlBulkCopy klasy. Wystąpienie SqlConnection działa zgodnie z opcjami podanymi w parametrze copyOptions .

SqlBulkCopy(SqlConnection, SqlBulkCopyOptions, SqlTransaction)

Inicjuje nowe wystąpienie SqlBulkCopy klasy przy użyciu dostarczonego istniejącego otwartego wystąpienia klasy SqlConnection. Wystąpienie SqlBulkCopy działa zgodnie z opcjami podanymi w parametrze copyOptions . Jeśli podano wartość inną niż null SqlTransaction , operacje kopiowania zostaną wykonane w ramach tej transakcji.

SqlBulkCopy(SqlConnection)

Źródło:
System.Data.SqlClient.notsupported.cs

Inicjuje nowe wystąpienie SqlBulkCopy klasy przy użyciu określonego otwartego wystąpienia klasy SqlConnection.

public:
 SqlBulkCopy(System::Data::SqlClient::SqlConnection ^ connection);
public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection);
new System.Data.SqlClient.SqlBulkCopy : System.Data.SqlClient.SqlConnection -> System.Data.SqlClient.SqlBulkCopy
Public Sub New (connection As SqlConnection)

Parametry

connection
SqlConnection

Już otwarte SqlConnection wystąpienie, które będzie używane do wykonywania operacji kopiowania zbiorczego. Jeśli parametry połączenia nie używają Integrated Security = trueparametrów , możesz użyć SqlCredential polecenia , aby bezpieczniej przekazać identyfikator użytkownika i hasło niż przez określenie identyfikatora użytkownika i hasła jako tekstu w parametrach połączenia.

Przykłady

Poniższa aplikacja konsolowa pokazuje, jak zbiorczo ładować dane przy użyciu połączenia, które jest już otwarte. W tym przykładzie element SqlDataReader jest używany do kopiowania danych z tabeli Production.Product w bazie danych AdventureWorks SQL Server do podobnej tabeli w tej samej bazie danych. Ten przykład służy tylko do celów demonstracyjnych. Nie można przenosić SqlBulkCopy danych z jednej tabeli do innej w tej samej bazie danych w aplikacji produkcyjnej. Należy pamiętać, że dane źródłowe nie muszą znajdować się w programie SQL Server; Możesz użyć dowolnego źródła danych, które można odczytać do obiektu IDataReader lub załadować do elementu DataTable.

Ważna

Ten przykład programu się nie uruchomi, chyba że tabele robocze zostaną utworzone zgodnie z opisem w Konfiguracji Przykładu Kopiowania Zbiorczego. Ten kod jest dostarczany w celu zademonstrowania składni tylko przy użyciu narzędzia SqlBulkCopy . Jeśli tabele źródłowe i docelowe znajdują się w tym samym wystąpieniu programu SQL Server, łatwiej i szybciej używać instrukcji Transact-SQL INSERT ... SELECT do kopiowania danych.

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.BulkCopyDemoMatchingColumns;",
                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();

            // Open the destination connection. In the real world you would
            // not use SqlBulkCopy to move data from one table to the other
            // in the same database. This is for demonstration purposes only.
            using (SqlConnection destinationConnection =
                       new SqlConnection(connectionString))
            {
                destinationConnection.Open();

                // Set up the bulk copy object.
                // Note that the column positions in the source
                // data reader match the column positions in
                // the destination table so there is no need to
                // map columns.
                using (SqlBulkCopy bulkCopy =
                           new SqlBulkCopy(destinationConnection))
                {
                    bulkCopy.DestinationTableName =
                        "dbo.BulkCopyDemoMatchingColumns";

                    try
                    {
                        // Write from the source to the destination.
                        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.BulkCopyDemoMatchingColumns;", _
                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 New SqlCommand( _
               "SELECT ProductID, Name, ProductNumber " & _
               "FROM Production.Product;", sourceConnection)
            Dim reader As SqlDataReader = commandSourceData.ExecuteReader

            ' Open the destination connection. In the real world you would 
            ' not use SqlBulkCopy to move data from one table to the other   
            ' in the same database. This is for demonstration purposes only.
            Using destinationConnection As SqlConnection = _
                New SqlConnection(connectionString)
                destinationConnection.Open()

                ' Set up the bulk copy object. 
                ' The column positions in the source data reader 
                ' match the column positions in the destination table, 
                ' so there is no need to map columns.
                Using bulkCopy As SqlBulkCopy = _
                  New SqlBulkCopy(destinationConnection)
                    bulkCopy.DestinationTableName = _
                    "dbo.BulkCopyDemoMatchingColumns"

                    Try
                        ' Write from the source to the destination.
                        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 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

Uwagi

Ponieważ połączenie jest już otwarte po SqlBulkCopy zainicjowaniu wystąpienia, połączenie pozostaje otwarte po SqlBulkCopy zamknięciu wystąpienia.

connection Jeśli argument ma wartość null, ArgumentNullException zgłaszany jest argument .

Zobacz też

Dotyczy

SqlBulkCopy(String)

Źródło:
System.Data.SqlClient.notsupported.cs

Inicjuje i otwiera nowe wystąpienie SqlConnection na podstawie podanego obiektu connectionString. Konstruktor używa SqlConnection do zainicjowania nowego wystąpienia klasy SqlBulkCopy.

public:
 SqlBulkCopy(System::String ^ connectionString);
public SqlBulkCopy(string connectionString);
new System.Data.SqlClient.SqlBulkCopy : string -> System.Data.SqlClient.SqlBulkCopy
Public Sub New (connectionString As String)

Parametry

connectionString
String

Parametry definiujące połączenie, które zostanie otwarte do użycia przez SqlBulkCopy wystąpienie. Jeśli parametry połączenia nie używa Integrated Security = true, możesz użyć SqlBulkCopy(SqlConnection) lub SqlBulkCopy(SqlConnection, SqlBulkCopyOptions, SqlTransaction) i SqlCredential, aby bezpieczniej przekazać identyfikator użytkownika i hasło niż przez określenie identyfikatora użytkownika i hasła jako tekstu w parametry połączenia.

Przykłady

Poniższa aplikacja konsolowa pokazuje, jak zbiorczo ładować dane przy użyciu połączenia określonego jako parametry. Połączenie jest automatycznie zamykane po SqlBulkCopy zamknięciu wystąpienia.

W tym przykładzie dane źródłowe są najpierw odczytywane z tabeli programu SQL Server do SqlDataReader wystąpienia. Dane źródłowe nie muszą znajdować się w programie SQL Server; Możesz użyć dowolnego źródła danych, które można odczytać do obiektu IDataReader lub załadować do elementu DataTable.

Ważna

Ten przykład programu się nie uruchomi, chyba że tabele robocze zostaną utworzone zgodnie z opisem w Konfiguracji Przykładu Kopiowania Zbiorczego. Ten kod jest dostarczany w celu zademonstrowania składni tylko przy użyciu narzędzia SqlBulkCopy . Jeśli tabele źródłowe i docelowe znajdują się w tym samym wystąpieniu programu SQL Server, łatwiej i szybciej używać instrukcji Transact-SQL INSERT ... SELECT do kopiowania danych.

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.BulkCopyDemoMatchingColumns;",
                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 a connection string.
            // In the real world you would not use SqlBulkCopy to move
            // data from one table to the other in the same database.
            using (SqlBulkCopy bulkCopy =
                       new SqlBulkCopy(connectionString))
            {
                bulkCopy.DestinationTableName =
                    "dbo.BulkCopyDemoMatchingColumns";

                try
                {
                    // Write from the source to the destination.
                    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.BulkCopyDemoMatchingColumns;", _
                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 a connection string. 
            ' In the real world you would not use SqlBulkCopy to move
            ' data from one table to the other in the same database.
            Using bulkCopy As SqlBulkCopy = New SqlBulkCopy(connectionString)
                bulkCopy.DestinationTableName = _
                "dbo.BulkCopyDemoMatchingColumns"

                Try
                    ' Write from the source to the destination.
                    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

Uwagi

Połączenie jest automatycznie zamykane na końcu operacji kopiowania zbiorczego.

Jeśli connectionString wartość ma wartość null, ArgumentNullException zgłaszana jest wartość . Jeśli connectionString jest pustym ciągiem, ArgumentException zostanie zgłoszony element .

Zobacz też

Dotyczy

SqlBulkCopy(String, SqlBulkCopyOptions)

Źródło:
System.Data.SqlClient.notsupported.cs

Inicjuje i otwiera nowe wystąpienie SqlConnection na podstawie podanego obiektu connectionString. Konstruktor używa tego SqlConnection do inicjowania nowego wystąpienia SqlBulkCopy klasy. Wystąpienie SqlConnection działa zgodnie z opcjami podanymi w parametrze copyOptions .

public:
 SqlBulkCopy(System::String ^ connectionString, System::Data::SqlClient::SqlBulkCopyOptions copyOptions);
public SqlBulkCopy(string connectionString, System.Data.SqlClient.SqlBulkCopyOptions copyOptions);
new System.Data.SqlClient.SqlBulkCopy : string * System.Data.SqlClient.SqlBulkCopyOptions -> System.Data.SqlClient.SqlBulkCopy
Public Sub New (connectionString As String, copyOptions As SqlBulkCopyOptions)

Parametry

connectionString
String

Parametry definiujące połączenie, które zostanie otwarte do użycia przez SqlBulkCopy wystąpienie. Jeśli parametry połączenia nie używa Integrated Security = true, możesz użyć SqlBulkCopy(SqlConnection) lub SqlBulkCopy(SqlConnection, SqlBulkCopyOptions, SqlTransaction) i SqlCredential, aby bezpieczniej przekazać identyfikator użytkownika i hasło niż przez określenie identyfikatora użytkownika i hasła jako tekstu w parametry połączenia.

copyOptions
SqlBulkCopyOptions

Kombinacja wartości z SqlBulkCopyOptions wyliczenia, która określa, które wiersze źródła danych są kopiowane do tabeli docelowej.

Przykłady

Poniższa aplikacja konsolowa pokazuje, jak wykonać ładowanie zbiorcze przy użyciu połączenia określonego jako parametry. Opcja jest ustawiona tak, aby używała wartości w kolumnie tożsamości tabeli źródłowej podczas ładowania tabeli docelowej. W tym przykładzie dane źródłowe są najpierw odczytywane z tabeli programu SQL Server do SqlDataReader wystąpienia. Tabela źródłowa i tabela docelowa zawierają kolumnę Tożsamość. Domyślnie nowa wartość kolumny Identity jest generowana w tabeli docelowej dla każdego dodanego wiersza. W tym przykładzie opcja jest ustawiana po otwarciu połączenia, które wymusza proces ładowania zbiorczego na użycie wartości Identity z tabeli źródłowej. Aby zobaczyć, jak opcja zmienia sposób działania obciążenia zbiorczego, uruchom przykład z bazą danych. Tabela BulkCopyDemoMatchingColumns jest pusta. Wszystkie wiersze są ładowane ze źródła. Następnie ponownie uruchom przykład bez opróżniania tabeli. Zgłaszany jest wyjątek, a kod zapisuje komunikat w konsoli z powiadomieniem o tym, że wiersze nie zostały dodane z powodu naruszeń ograniczeń klucza podstawowego.

Ważna

Ten przykład programu się nie uruchomi, chyba że tabele robocze zostaną utworzone zgodnie z opisem w Konfiguracji Przykładu Kopiowania Zbiorczego. Ten kod jest dostarczany w celu zademonstrowania składni tylko przy użyciu narzędzia SqlBulkCopy . Jeśli tabele źródłowe i docelowe znajdują się w tym samym wystąpieniu programu SQL Server, łatwiej i szybciej używać instrukcji Transact-SQL INSERT ... SELECT do kopiowania danych.

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.BulkCopyDemoMatchingColumns;",
                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();

            // Create the SqlBulkCopy object using a connection string
            // and the KeepIdentity option.
            // In the real world you would not use SqlBulkCopy to move
            // data from one table to the other in the same database.
            using (SqlBulkCopy bulkCopy =
                new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity))
            {
                bulkCopy.DestinationTableName =
                    "dbo.BulkCopyDemoMatchingColumns";

                try
                {
                    // Write from the source to the destination.
                    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.BulkCopyDemoMatchingColumns;", _
                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

            ' Create the SqlBulkCopy object using a connection string 
            ' and the KeepIdentity option. 
            ' In the real world you would not use SqlBulkCopy to move
            ' data from one table to the other in the same database.
            Using bulkCopy As SqlBulkCopy = _
              New SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity)
                bulkCopy.DestinationTableName = "dbo.BulkCopyDemoMatchingColumns"

                Try
                    ' Write from the source to the destination.
                    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

Uwagi

Szczegółowe informacje na temat wszystkich opcji kopiowania zbiorczego można uzyskać w temacie SqlBulkCopyOptions .

Zobacz też

Dotyczy

SqlBulkCopy(SqlConnection, SqlBulkCopyOptions, SqlTransaction)

Źródło:
System.Data.SqlClient.notsupported.cs

Inicjuje nowe wystąpienie SqlBulkCopy klasy przy użyciu dostarczonego istniejącego otwartego wystąpienia klasy SqlConnection. Wystąpienie SqlBulkCopy działa zgodnie z opcjami podanymi w parametrze copyOptions . Jeśli podano wartość inną niż null SqlTransaction , operacje kopiowania zostaną wykonane w ramach tej transakcji.

public:
 SqlBulkCopy(System::Data::SqlClient::SqlConnection ^ connection, System::Data::SqlClient::SqlBulkCopyOptions copyOptions, System::Data::SqlClient::SqlTransaction ^ externalTransaction);
public SqlBulkCopy(System.Data.SqlClient.SqlConnection connection, System.Data.SqlClient.SqlBulkCopyOptions copyOptions, System.Data.SqlClient.SqlTransaction externalTransaction);
new System.Data.SqlClient.SqlBulkCopy : System.Data.SqlClient.SqlConnection * System.Data.SqlClient.SqlBulkCopyOptions * System.Data.SqlClient.SqlTransaction -> System.Data.SqlClient.SqlBulkCopy
Public Sub New (connection As SqlConnection, copyOptions As SqlBulkCopyOptions, externalTransaction As SqlTransaction)

Parametry

connection
SqlConnection

Już otwarte SqlConnection wystąpienie, które będzie używane do wykonywania kopii zbiorczej. Jeśli parametry połączenia nie używają Integrated Security = trueparametrów , możesz użyć SqlCredential polecenia , aby bezpieczniej przekazać identyfikator użytkownika i hasło niż przez określenie identyfikatora użytkownika i hasła jako tekstu w parametrach połączenia.

copyOptions
SqlBulkCopyOptions

Kombinacja wartości z SqlBulkCopyOptions wyliczenia, która określa, które wiersze źródła danych są kopiowane do tabeli docelowej.

externalTransaction
SqlTransaction

Istniejące SqlTransaction wystąpienie, w którym zostanie wykonana kopia zbiorcza.

Uwagi

Jeśli opcje obejmują UseInternalTransaction argument i externalTransaction argument nie ma wartości null, zgłaszany jest wyjątek InvalidArgumentException .

Przykłady przedstawiające sposób użycia SqlBulkCopy w transakcji można znaleźć w temacie Transaction and Bulk Copy Operations (Operacje transakcji i kopiowania zbiorczego).

Zobacz też

Dotyczy