खोज…


टिप्पणियों

WriteToServer और WriteToServerAsync पास ओवरलोड हैं जो बल्क कॉपी के डेटा के स्रोत के रूप में IDataReader (उदाहरणों में देखे गए), DataTable और DataRow सरणियों ( DataRow[] ) को स्वीकार करते हैं।

Async बल्क कॉपी

यह नमूना यहाँ वर्णित एक ToDataReader विधि का उपयोग करता है जो SqlBulkCopy के लिए एक सामान्य सूची DataReader ToDataReader ।

यह गैर-एस्किंस विधियों का उपयोग करके भी किया जा सकता है।

public class Widget
{
    public int WidgetId {get;set;}
    public string Name {get;set;}
    public int Quantity {get;set;}
}

public async Task AddWidgets(IEnumerable<Widget> widgets)
{
    using(var conn = new SqlConnection("{connection string}")) {
        await conn.OpenAsync();

        using(var bulkCopy = new SqlBulkCopy(conn)) {
            bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
            bulkCopy.BatchSize = 500;
            bulkCopy.DestinationTableName = "Widgets";
            bulkCopy.EnableStreaming = true;

            using(var dataReader = widgets.ToDataReader())
            {
                await bulkCopy.WriteToServerAsync(dataReader);
            }
        }
    }
}

थोक प्रति

यह नमूना यहाँ वर्णित एक ToDataReader विधि का उपयोग करता है जो SqlBulkCopy के लिए एक सामान्य सूची DataReader ToDataReader ।

यह भी async विधियों का उपयोग करके किया जा सकता है।

public class Widget
{
    public int WidgetId {get;set;}
    public string Name {get;set;}
    public int Quantity {get;set;}
}

public void AddWidgets(IEnumerable<Widget> widgets)
{
    using(var conn = new SqlConnection("{connection string}")) {
        conn.Open();

        using(var bulkCopy = new SqlBulkCopy(conn)) {
            bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
            bulkCopy.BatchSize = 500;
            bulkCopy.DestinationTableName = "Widgets";
            bulkCopy.EnableStreaming = true;

            using(var dataReader = widgets.ToDataReader())
            {
                bulkCopy.WriteToServer(dataReader);
            }
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow