Bagikan melalui


SqlBulkCopyColumnOrderHintCollection Kelas

Definisi

SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase.

public ref class SqlBulkCopyColumnOrderHintCollection sealed : System::Collections::CollectionBase
public sealed class SqlBulkCopyColumnOrderHintCollection : System.Collections.CollectionBase
type SqlBulkCopyColumnOrderHintCollection = class
    inherit CollectionBase
Public NotInheritable Class SqlBulkCopyColumnOrderHintCollection
Inherits CollectionBase
Warisan
SqlBulkCopyColumnOrderHintCollection

Contoh

Contoh berikut menyalin data secara massal dari tabel sumber di database sampel AdventureWorks ke tabel tujuan dalam database yang sama. SqlBulkCopyColumnOrderHints ditambahkan ke SqlBulkCopyColumnOrderHintCollectionSqlBulkCopy objek untuk menentukan petunjuk urutan untuk operasi penyalinan massal.

Penting

Sampel ini tidak akan berjalan kecuali Anda telah membuat tabel kerja seperti yang dijelaskan dalam Penyiapan Contoh Salinan Massal. Kode ini disediakan untuk mendemonstrasikan sintaks untuk menggunakan SqlBulkCopy saja. Jika tabel sumber dan tujuan berada dalam instans SQL Server yang sama, lebih mudah dan lebih cepat untuk menggunakan pernyataan Transact-SQL INSERT … SELECT untuk menyalin data.

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.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 (SqlBulkCopy bulkCopy =
                       new SqlBulkCopy(connectionString))
            {
                bulkCopy.DestinationTableName =
                    "dbo.BulkCopyDemoMatchingColumns";

                // Specify the sort order for the ProductNumber column in 
                // the destination table.
                bulkCopy.ColumnOrderHints.Add("ProductNumber", SortOrder.Ascending);

                // 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;";
    }
}

Keterangan

Petunjuk urutan kolom menentukan urutan pengurutan kolom dalam tabel tujuan.

Performa SqlBulkCopy ditingkatkan jika data yang diimpor diurutkan sesuai dengan indeks berkluster pada tabel, jika ada. Jika data diurutkan dalam urutan yang berbeda dari urutan kunci indeks berkluster atau jika tidak ada indeks berkluster pada tabel, petunjuk urutan diabaikan.

Petunjuk pesanan dapat ditentukan untuk sejumlah kolom dalam tabel tujuan. Secara default, operasi penyisipan massal mengasumsikan data tidak diurutkan jika tidak ada petunjuk yang disediakan.

Nama kolom yang disediakan harus berupa nama kolom yang valid dalam tabel tujuan. Urutan di mana petunjuk dapat ditentukan bersifat arbitrer. Satu nama kolom tidak dapat ditentukan lebih dari sekali.

ColumnMappings Jika koleksi tidak kosong, petunjuk pesanan hanya dapat disediakan untuk kolom tujuan yang valid yang telah dipetakan.

SortOrder Jika diberikan dari Yang Tidak Ditentukan, ArgumentException akan dilemparkan.

Konstruktor

SqlBulkCopyColumnOrderHintCollection()

SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase.

Properti

Item[Int32]

Mendapatkan objek pada SqlBulkCopyColumnOrderHint indeks yang ditentukan.

Metode

Add(SqlBulkCopyColumnOrderHint)

Menambahkan petunjuk pesanan yang ditentukan ke SqlBulkCopyColumnOrderHintCollection.

Add(String, SortOrder)

Membuat baru SqlBulkCopyColumnOrderHint dan menambahkannya ke koleksi.

Clear()

SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase.

Contains(SqlBulkCopyColumnOrderHint)

Mendapatkan nilai yang menunjukkan apakah objek tertentu SqlBulkCopyColumnOrderHint ada dalam koleksi.

CopyTo(SqlBulkCopyColumnOrderHint[], Int32)

Menyalin elemen ke SqlBulkCopyColumnOrderHintCollection array SqlBulkCopyColumnOrderHint item, dimulai pada indeks tertentu.

IndexOf(SqlBulkCopyColumnOrderHint)

Mendapatkan indeks objek yang ditentukan SqlBulkCopyColumnOrderHint .

Insert(Int32, SqlBulkCopyColumnOrderHint)

Sisipkan yang baru SqlBulkCopyColumnOrderHint pada indeks yang ditentukan.

Remove(SqlBulkCopyColumnOrderHint)

Menghapus elemen yang ditentukan SqlBulkCopyColumnOrderHint dari SqlBulkCopyColumnOrderHintCollection.

RemoveAt(Int32)

SqlBulkCopyColumnOrderHint Kumpulan objek yang mewarisi dari CollectionBase.

Berlaku untuk